biicode, reuse and play

448 views
322 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
448
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

biicode, reuse and play

  1. 1. www.biicode.com Francisco Fernández Castaño @fcofdezc
  2. 2. “Los programadores de C++ somos los peores en reutilización de código” Bjarne Stroustrup
  3. 3. ➜ node git:(master) total 0 drwxr-xr-x 13 fran drwxr-xr-x 15 fran drwxr-xr-x 7 fran drwxr-xr-x 21 fran drwxr-xr-x 7 fran drwxr-xr-x 25 fran drwxr-xr-x 23 fran drwxr-xr-x 29 fran ➜ node git:(master) ls -l deps staff staff staff staff staff staff staff staff 442 510 238 714 238 850 782 986 16 16 16 16 16 16 16 16 feb feb feb feb feb feb feb feb 17:22 17:22 17:22 17:22 17:22 17:22 17:22 17:22 cares http_parser mdb_v8 npm openssl uv v8 zlib
  4. 4. sudo apt-get install opencv
  5. 5. brew install opencv
  6. 6. ????? opencv
  7. 7. Hay muchos usuarios de Windows
  8. 8. Hay muchos usuarios de Windows
  9. 9. SETUP
  10. 10. SETUP Tu ordenador Tu sistema Tus herramientas
  11. 11. Talk is cheap. Show me the code. Linus Tolvards
  12. 12. Hello Bii!! $ bii new hello
  13. 13. Hello Bii!! $ bii new hello $ vim fran/helloblock/main.cpp #include “hello.h” int main(){ hello(); } fran/helloblock/hello.h void main(); fran/helloblock/hello.cpp #include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; }
  14. 14. Hello Bii!! $ bii new hello $ vim fran/helloblock/main.cpp #include “hello.h” int main(){ hello(); } fran/helloblock/hello.h void main(); $ bii cpp:run HelloBii!! fran/helloblock/hello.cpp #include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; }
  15. 15. Grafo de dependencias fran/helloblock/hello.h void main(); #include “hello.h” int main(){ hello(); } fran/helloblock/main.cpp #include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; } fran/helloblock/hello.cpp
  16. 16. Construcción automática CMakeLists.txt ADD_EXECUTABLE(fran_hello main.cpp hello.cpp)
  17. 17. Publish biicode hello.h main.cpp hello.cpp MacBook Fran hello.h main.cpp hello.cpp $ bii publish tag: STABLE msg: MyHello
  18. 18. Solo necesitamos un comando
  19. 19. Reuse & Play (john) $ bii new hello
  20. 20. Reuse & Play $ bii new hello $ vim john/repeatblock/repeat.h #include “fran/helloblock/hello.h” void repeat(){ hello(); hello(); } john/repeatblock/main.cpp void repeat(); #include “repeat.h” int main(){ repeat(); }
  21. 21. Reuse & Play $ bii new hello $ vim john/repeatblock/repeat.h #include “fran/helloblock/hello.h” void repeat(){ hello(); hello(); } john/repeatblock/main.cpp $ bii find $ bii cpp:run HelloBii!! HelloBii!! void repeat(); #include “repeat.h” int main(){ repeat(); }
  22. 22. Find biicode hello.h main.cpp src john/repeatblock/repeat.h hello.cpp dep fran/helloblock/hello.h void repeat(); john/repeatblock/main.cpp fran/helloblock/hello.cpp
  23. 23. Construcción automática CMakeLists.txt ADD_LIBRARY(fran_hello hello.cpp) ADD_EXECUTABLE(john_repeat main.cpp) TARGET_LINK_LIBRARIES(john_repeat fran_hello)
  24. 24. Publish biicode hello.h main.cpp hello.cpp PC John hello.h main.cpp $ bii publish tag: STABLE msg: MyRepeat
  25. 25. Publish biicode hello.h main.cpp hello.cpp repeat.h PC John hello.h main.cpp main.cpp
  26. 26. Reuse & Play $ bii new doom3 (carmack) $ vim john/doom3/main.cpp #include “john/repeatblock/repeat.h” int main(){ repeat(); } void repeat(); $ bii find $ bii cpp:run HelloBii!! HelloBii!!
  27. 27. Reuse & Play biicode hello.h main.cpp hello.cpp repeat.h main.cpp
  28. 28. biicode way #include “google/gtest/gtest.h” bii find sleep
  29. 29. Update fran/helloblock/hello.cpp $ vim $ bii publish tag: STABLE msg: 2 version #include “hello.h” void hello(){ cout<<“Bii rocks!”<<endl; }
  30. 30. 0 1 hello.h hello.h main.cpp hello.cpp main.cpp hello.cpp hello.cpp
  31. 31. Reuse & Play (john)$ bii find —-update $ bii cpp:run Bii rocks! Bii rocks! #include “repeat.h” int main(){ repeat(); }
  32. 32. Se pueden definir políticas de resolución de dependencias
  33. 33. Tags y Versiones Autores Ramas
  34. 34. biicode garantiza compatibilidad entre ficheros
  35. 35. Otras features
  36. 36. Ficheros de datos Build configuration Configuration rules Colaboración
  37. 37. Métricas reales de uso a nivel de fichero
  38. 38. biicode hello.h main.cpp hello.cpp repeat.h main.cpp
  39. 39. ¿Cómo?
  40. 40. Biicode gives back! REVENUE SPLIT $ FREE USERS OPEN SOURCE € $ PREMIUM USERS PROPRIETARY CODE
  41. 41. Roadmap
  42. 42. #biicontest2014 1000 € 500 € 300 € https://www.biicode.com/biicontest2014-es
  43. 43. Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. Edsger W. Dijkstra
  44. 44. ¡GRACIAS!

×