Ako si vybrať programovací jazyk a framework?

1,301 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
1,301
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ako si vybrať programovací jazyk a framework?

  1. 1. Vybrané témy implementácie webových aplikácií JÁN SUCHAL
  2. 2. Ktorý implementačný jazyk & framework? Programátor  Rýchlosť (výpočtová, vývojová)  Podpora (dokumentácia, knižnice, pluginy, IDE, komunita)  Prehľadnosť, intuitívnosť (štandardy, konvencie)  Koľko mi zaplatia a kde? Manažér  Koľko to stojí? (licencie, nástroje...)  Koľko to ušetrí náklady? (menej serverov?, menej ľudí?)  Koľko ľudí to vie? (ako rýchlo Ťa viem nahradiť?) Zákazník  ???
  3. 3. “Rýchlosť”http://shootout.alioth.debian.org/
  4. 4. “Popularita”
  5. 5. “Popularita”http://news.ycombinator.com/item?id=3746692
  6. 6. “Popularita”http://news.ycombinator.com/item?id=3746692
  7. 7. Kde mi za to zaplatia? profesia.sk  “java” – 288 ponúk  “php” – 131 ponúk  “c#” – 114 ponúk  “python” – 26 ponúk  “ruby” – 7 ponúk  “j2ee” – 110 ponúk  “asp” – 59 ponúk  “rails” – 7 ponúk  “django” – 0 ponúk
  8. 8. Kde mi za to zaplatia?
  9. 9. Implementačné jazyky LISP, Clojure  homoikonicita  mixiny, bloky, OO, Ruby, Python otvorené triedy Produktivita * Y PHP  dynamické typovanie Výkon * X  GC, objekty + primitívne Java, C# typy C++, C  štruktúry, funkcie, “objekty”, knižnice Assembler  inštrukcie
  10. 10. Prehľad veľkých webaplikácií Wikipedia – PHP, MySQL YouTube – Python, MySQL Facebook – PHP, MySQL, HBase Twitter – Ruby on Rails, MySQL, Scala Groupon – Ruby on Rails, MySQL Foursquare – Scala, MongoDB Bit.ly – Python, Tornado, MySQL, MongoDB LinkedIn – Java, Spring MVC, Ruby on Rails StackOverflow – C#, ASP.NET GetPrismatic - Clojurehttp://www.quora.com/What-are-the-programming-languages-and-frameworks-the-top-NYC-startups-are-using
  11. 11. Frameworky (Django vs. Rails 2.x)http://www.scribd.com/doc/121814/RailsDjango-Comparison
  12. 12. Frameworky na webaplikácie Event-based vs. MVC  “desktopové” vs. “RESTful” Perzistencia  Adaptéry (MySQL, PostgreSQL, Oracle, MSSQL...)  Objektovo-relačné mapovanie  NoSQL databázy (dokumentové, grafové, key-value) Bezpečnosť  SQLi, XSS, CSRF, cookie tampering Šablónovací jazyk  generovanie formulárov, formátovanie... AJAX Validácia  Server + klient
  13. 13. Frameworky na webaplikácie Testovanie  unit testy, integračné testovanie, testovanie s db, záťažové testy Automatizácia  Generátory kódu (modely, kontrolery, testy)  Automatické administračné rozhranie  Inštalácia závislostí aplikácie Cachovanie Podpora zmien databázy počas vývoja Podpora v editoroch a IDE Komunita (vývoj, fóra, biznis)
  14. 14. Zhrnutie Menej výkonný jazyk > dlhší vývoj  Rýchla verzia 1.0, úzke hrdlo sa prepíše do rýchlejšieho jazyka Trend polyglot programovania  Aplikácie používajúce niekoľko jazykov sú čoraz bežnejšie  Použite najlepší nástroj/jazyk/framework na daný problém “Koľko jazykov vieš toľko krát si programátorom.”

×