• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Server Side Javascript (ru)
 

Server Side Javascript (ru)

on

  • 2,664 views

Presentation to my talk at local Bishkek club.

Presentation to my talk at local Bishkek club.

Statistics

Views

Total Views
2,664
Views on SlideShare
2,651
Embed Views
13

Actions

Likes
0
Downloads
10
Comments
0

4 Embeds 13

http://www.slideshare.net 9
http://www.techgig.com 2
url_unknown 1
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Server Side Javascript (ru) Server Side Javascript (ru) Presentation Transcript

    • Server Side JavaScript (SSJS)
      • [email_address] : ~$ whoami
      • Bakyt Niyazov 100% Freelancer. Proud PHP developer, happy Subaru owner. Specialized on Web. Social Networks specialist.
      • P.S: Беcстыжий пользователь Open Source & Free software. Пока что скромный контрибьютор (женюсь, потом...)
      www.facebook.com/bakytn Twitter: bakytn (английский) & bakytn_kg (не на английском)
    • Агенда
      • Этот недопонятый JavaScript (LiveScript?)
      • Серверные технологии и JavaScript
      • Aptana Jaxer
      • Node.js
    • JavaScript
      • Воспринимается как игрушечный язык
      • 1. Код плохо управляется.
      • 2. Хорош лишь для работы с DOM
      • 3. Плох для ”серьезного программирования”
      • 4. Беспонтовая реализация спецификаций
    • Между тем
      • Самый недопонятый язык в мире
      • 1. Резко отличается от т.н. Мейнстримовых
      • 2. Ошибки в дизайне
      • 3. Традиционно выполняется в среде браузера
    • JavaScript
      • В 1995 году его написали за одну неделю для Netscape 2
      • Цели: легко изучаем, должен быть похож на Java
      • При этом у него экзотические предки: функции из Scheme, объекты из Self
      • Быстро наращивали
      • Мало изменился с 1999 года.
    • Решения через абстракцию
      • Разрабатываются библиотеки.
      • Надслойка над проблемными частями
      YAHOO.util.Event.addListener('elementId', 'click', callbackFn); Jquery('#elementId').text('some text');
    • JavaScript рулит!
      • Императивный
      • Функциональный
      • ОО
      • Простой
    • JavaScript
      • Функции это:
      • 1. объекты
      • 2. могут создаваться во время исполнения
      • 3. могут быть присвоены переменным
      • 4. могут быть анонимными
    • JavaScript
    • JavaScript
      • Плохие стороны
      • 1. глобальные переменные
      • 2. вставка точки с запятой
      • 3. зарезервированные слова
    • JavaScript
      • 0.1 + 0.2 === 0.3 // false
      • false == null // false
      • false == undefined // false
      • null == undefined // true
      • '' == '0' // false
      • 0 == '' // true
      • 0 == '0' // true
    • Prototype наследование
        vs Классическое 1. Проще 2. Нет классов, только объекты 3. Мощный (может симулировать Классическое наследование). Обратное вряд ли возможно.
    • JavaScript
      • Язык эволюционирует
      • Растет его роль.
      • Растет спрос на разработчиков знающих JavaScript
      • JSON очень удобен
    • Рекомендую книги
      • Douglas Crockford: JavaScript: The Good Parts (oreilly)
      • John Resig (любые из 2 книг) особенно Pro JavaScript Techniques
      • Site PPK: quirksmode.org
      • Советы:
      • 1. Never rely on JavaScript (:
      • 2. Netbeans имеет очень хорошую поддержку. JS
    • Server Side JavaScript
        SSJS это JavaScript который выполняется на сервере
    • SSJS
        Первые попытки были предприняты в 1996 году все тем же Netscape. Под названием LiveWire
    • SSJS
      • Если добавить:
      • 1. Поддержку работы с файловой системой
      • 2. Работы с базами данных
      • 3. Сетью
      • 4. и т. д.
    • Что мы имеем?
      • Rhino
      • 1. JavaScript написанный на Java
      • 2. Выполняется в JVM
      • 3. Выполнять JS из shell
      • 4. Разрабатывается Mozilla
      • 5. Пишутся фреймворки (например Phobos (phobos.dev.java.net))
    • Что мы имеем?
      • Jaxer
      • 1. Основан на кодовой базе Firefox 3
      • 2. Разработчик Aptana
      • 3. Выполняется в Apache или Jetty
      • 4. Server side DOM
      • 5. Может работать с существующими либами
      • 6. Хорошо работает с уже сущ. серверными языками.
    • Что мы имеем?
      • Node.js
    • Что мы имеем?
      • И массу других продуктов
      • 1. mod_js (прям как CGI.pm)
      • 2. Apache Sling (framework – Rhino based)
      • 3. AppJet
      • 4. mасса других..
    • Остановлюсь на Jaxer
        Все ясно с Rhino.
    • Jaxer Пример Приложения
    • Jaxer API
      • Для работы с Базами Данных (Jaxer.DB)
      • 1. MySQL
      • 2. SQLite (встроенный)
      • Сети (HTTP, SMTP, FTP etc.)
      • Файловая система (Jaxer.File)
      • Сессии
    • Jaxer
      • <script> - код выполнится на клиентской стороне
      • <script runat=”server”>
      • <script runat=”server-proxy”>
      • делает так, что функции на сервере могут быть вызваны из клиентской части
      • <script runat=”both”>
    • Jaxer сравнения производительности
    • Node.js
      • Автор: Ryan Dahl
      • Цель: обеспечить возможность легкого масштабирования для сетевых програм
      • Реализует Reactor паттерн
      • Основан на V8 (V8 JavaScript Engine) by Google написанный на С++
      • Написан на С++
      • Использует JavaScript для реализации event-based programming
    • Node.js
      • Средство для создания очень быстрых неблокирующих серверов
      • JavaScript потому что он отлично подходит для событийно ориентированного программирования
      • 8000 строк кода С++, 2000 строк JavaScript
    • Node.js
        Пример: типичный код на PHP:
    • Node.js
      • Q: Что делает программа пока выполняется этот код?
      • A: Ждет ответа от MySQL
    • Node.js
      • Пока ждет. Ресурсы заняты.
      • Это как Apache vs NGINX
    • Node.js
    •  
    • Node.js
      • Разница?
      • Apache использует 1 тред на соединение
      • NGINX не использует треды, он использует т.н. event loops
    • Node.js
    • Node.js
      • Плюсы:
      • 1. Эффективное использование ресурсов.
      • 2. Скорость (отчасти из за 1.)
      • 3. Не боится нагрузок
      • 4. Не боится медленных клиентов
      • 5. Платформо независим
    • Node.js
      • Так почему давно так не делали?
      • 1. некоторые системные вызовы были добавлены отн. недавно.
      • 2. мы привыкли так мыслить и нас учили:
    • Node.js
      • Еще раз почему JavaScript
      • 1. Поддержка анонимных функций
      • 2. Культура программирования на JavaScript уже предполагает событийную ориентированность.
    • Установка Node.js
      • # git clone git://github.com/ry/node.git (or download and extract a tarball)
      • # ./configure
      • # make
      • # sudo make install
    • Пример
      • HTTP Server
    • Лучшие сферы применения
      • Сетевые серверы
      • Обработчик аплоадов
      • Эмуляция server push через AJAX polling
    • Ресурсы
      • http://nodejs.org
      • http://simonwillison.net/2009/Nov/23/node/
    • Итоги
      • JavaScript чрезвычайно гибок
      • Его легко изучить
      • Он эволюционирует
      • Одновременно похож и не похож на другие языки
      • Но нужно все подводные камни чтобы эффективно использовать
    • Спасибо!