Your SlideShare is downloading. ×
Server Side Javascript (ru)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Server Side Javascript (ru)

2,211

Published on

Presentation to my talk at local Bishkek club.

Presentation to my talk at local Bishkek club.

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
2,211
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Server Side JavaScript (SSJS)
    • [email_address] : ~$ whoami
    • 2. Bakyt Niyazov 100% Freelancer. Proud PHP developer, happy Subaru owner. Specialized on Web. Social Networks specialist.
    • 3. P.S: Беcстыжий пользователь Open Source & Free software. Пока что скромный контрибьютор (женюсь, потом...)
    www.facebook.com/bakytn Twitter: bakytn (английский) & bakytn_kg (не на английском)
  • 4. Агенда
    • Этот недопонятый JavaScript (LiveScript?)
    • 5. Серверные технологии и JavaScript
    • 6. Aptana Jaxer
    • 7. Node.js
  • 8. JavaScript
    • Воспринимается как игрушечный язык
    • 9. 1. Код плохо управляется.
    • 10. 2. Хорош лишь для работы с DOM
    • 11. 3. Плох для ”серьезного программирования”
    • 12. 4. Беспонтовая реализация спецификаций
  • 13. Между тем
    • Самый недопонятый язык в мире
    • 14. 1. Резко отличается от т.н. Мейнстримовых
    • 15. 2. Ошибки в дизайне
    • 16. 3. Традиционно выполняется в среде браузера
  • 17. JavaScript
    • В 1995 году его написали за одну неделю для Netscape 2
    • 18. Цели: легко изучаем, должен быть похож на Java
    • 19. При этом у него экзотические предки: функции из Scheme, объекты из Self
    • 20. Быстро наращивали
    • 21. Мало изменился с 1999 года.
  • 22. Решения через абстракцию
    • Разрабатываются библиотеки.
    • 23. Надслойка над проблемными частями
    YAHOO.util.Event.addListener('elementId', 'click', callbackFn); Jquery('#elementId').text('some text');
  • 24. JavaScript рулит!
    • Императивный
    • 25. Функциональный
    • 26. ОО
    • 27. Простой
  • 28. JavaScript
    • Функции это:
    • 29. 1. объекты
    • 30. 2. могут создаваться во время исполнения
    • 31. 3. могут быть присвоены переменным
    • 32. 4. могут быть анонимными
  • 33. JavaScript
  • 34. JavaScript
    • Плохие стороны
    • 35. 1. глобальные переменные
    • 36. 2. вставка точки с запятой
    • 37. 3. зарезервированные слова
  • 38. JavaScript
    • 0.1 + 0.2 === 0.3 // false
    • 39. false == null // false
    • 40. false == undefined // false
    • 41. null == undefined // true
    • 42. '' == '0' // false
    • 43. 0 == '' // true
    • 44. 0 == '0' // true
  • 45. Prototype наследование
      vs Классическое 1. Проще 2. Нет классов, только объекты 3. Мощный (может симулировать Классическое наследование). Обратное вряд ли возможно.
  • 46. JavaScript
    • Язык эволюционирует
    • 47. Растет его роль.
    • 48. Растет спрос на разработчиков знающих JavaScript
    • 49. JSON очень удобен
  • 50. Рекомендую книги
    • Douglas Crockford: JavaScript: The Good Parts (oreilly)
    • 51. John Resig (любые из 2 книг) особенно Pro JavaScript Techniques
    • 52. Site PPK: quirksmode.org
    • 53. Советы:
    • 54. 1. Never rely on JavaScript (:
    • 55. 2. Netbeans имеет очень хорошую поддержку. JS
  • 56. Server Side JavaScript
      SSJS это JavaScript который выполняется на сервере
  • 57. SSJS
      Первые попытки были предприняты в 1996 году все тем же Netscape. Под названием LiveWire
  • 58. SSJS
    • Если добавить:
    • 59. 1. Поддержку работы с файловой системой
    • 60. 2. Работы с базами данных
    • 61. 3. Сетью
    • 62. 4. и т. д.
  • 63. Что мы имеем?
    • Rhino
    • 64. 1. JavaScript написанный на Java
    • 65. 2. Выполняется в JVM
    • 66. 3. Выполнять JS из shell
    • 67. 4. Разрабатывается Mozilla
    • 68. 5. Пишутся фреймворки (например Phobos (phobos.dev.java.net))
  • 69. Что мы имеем?
    • Jaxer
    • 70. 1. Основан на кодовой базе Firefox 3
    • 71. 2. Разработчик Aptana
    • 72. 3. Выполняется в Apache или Jetty
    • 73. 4. Server side DOM
    • 74. 5. Может работать с существующими либами
    • 75. 6. Хорошо работает с уже сущ. серверными языками.
  • 76. Что мы имеем?
    • Node.js
  • 77. Что мы имеем?
    • И массу других продуктов
    • 78. 1. mod_js (прям как CGI.pm)
    • 79. 2. Apache Sling (framework – Rhino based)
    • 80. 3. AppJet
    • 81. 4. mасса других..
  • 82. Остановлюсь на Jaxer
      Все ясно с Rhino.
  • 83. Jaxer Пример Приложения
  • 84. Jaxer API
    • Для работы с Базами Данных (Jaxer.DB)
    • 85. 1. MySQL
    • 86. 2. SQLite (встроенный)
    • 87. Сети (HTTP, SMTP, FTP etc.)
    • 88. Файловая система (Jaxer.File)
    • 89. Сессии
  • 90. Jaxer
    • <script> - код выполнится на клиентской стороне
    • 91. <script runat=”server”>
    • 92. <script runat=”server-proxy”>
    • 93. делает так, что функции на сервере могут быть вызваны из клиентской части
    • 94. <script runat=”both”>
  • 95. Jaxer сравнения производительности
  • 96. Node.js
    • Автор: Ryan Dahl
    • 97. Цель: обеспечить возможность легкого масштабирования для сетевых програм
    • 98. Реализует Reactor паттерн
    • 99. Основан на V8 (V8 JavaScript Engine) by Google написанный на С++
    • 100. Написан на С++
    • 101. Использует JavaScript для реализации event-based programming
  • 102. Node.js
    • Средство для создания очень быстрых неблокирующих серверов
    • 103. JavaScript потому что он отлично подходит для событийно ориентированного программирования
    • 104. 8000 строк кода С++, 2000 строк JavaScript
  • 105. Node.js
      Пример: типичный код на PHP:
  • 106. Node.js
    • Q: Что делает программа пока выполняется этот код?
    • 107. A: Ждет ответа от MySQL
  • 108. Node.js
    • Пока ждет. Ресурсы заняты.
    • 109. Это как Apache vs NGINX
  • 110. Node.js
  • 111.  
  • 112. Node.js
    • Разница?
    • 113. Apache использует 1 тред на соединение
    • 114. NGINX не использует треды, он использует т.н. event loops
  • 115. Node.js
  • 116. Node.js
    • Плюсы:
    • 117. 1. Эффективное использование ресурсов.
    • 118. 2. Скорость (отчасти из за 1.)
    • 119. 3. Не боится нагрузок
    • 120. 4. Не боится медленных клиентов
    • 121. 5. Платформо независим
  • 122. Node.js
    • Так почему давно так не делали?
    • 123. 1. некоторые системные вызовы были добавлены отн. недавно.
    • 124. 2. мы привыкли так мыслить и нас учили:
  • 125. Node.js
    • Еще раз почему JavaScript
    • 126. 1. Поддержка анонимных функций
    • 127. 2. Культура программирования на JavaScript уже предполагает событийную ориентированность.
  • 128. Установка Node.js
    • # git clone git://github.com/ry/node.git (or download and extract a tarball)
    • 129. # ./configure
    • 130. # make
    • 131. # sudo make install
  • 132. Пример
    • HTTP Server
  • 133. Лучшие сферы применения
    • Сетевые серверы
    • 134. Обработчик аплоадов
    • 135. Эмуляция server push через AJAX polling
  • 136. Ресурсы
    • http://nodejs.org
    • 137. http://simonwillison.net/2009/Nov/23/node/
  • 138. Итоги
    • JavaScript чрезвычайно гибок
    • 139. Его легко изучить
    • 140. Он эволюционирует
    • 141. Одновременно похож и не похож на другие языки
    • 142. Но нужно все подводные камни чтобы эффективно использовать
  • 143. Спасибо!

×