1 / 36

О себе

О себе. Александр Кучеренко В DataArt почти год Занимаюсь программированием 7+ лет За это время писал на : PHP, JavaScript, ActionScript3, C#, Java(Android), Objective-C. Node JS проблемы надежности, и пути их решения. (Мой личный опыт). Node JS +. Весело писать код.

Download Presentation

О себе

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. О себе Александр Кучеренко • В DataArtпочти год • Занимаюсь программированием 7+ лет • За это время писал на:PHP, JavaScript, ActionScript3, C#, Java(Android), Objective-C

  2. Node JS проблемы надежности, и пути их решения (Мой личный опыт)

  3. Node JS + Весело писать код. Огромное количество готовых решений. Перспективно. Легко разворачивать, легко писать. Возможен прирост производительности. Модно.

  4. Node JS - Не надежно. Утечки памяти. Слишком быстро развивается. Сложные вещи делать сложно.

  5. Стоит ли связываться? Есть ли необходимость именно в Node JS? Нужно шарить код между бекендом и фронтендом? Возможно вашу задачу можно решить на Python, Ruby… PHP (если не стыдно) Node JS

  6. Node JS Охота на Exceptions

  7. Exceptions В JavaScript кодможет выполняться: Синхронно Асинхронно

  8. Exceptions Синхронный

  9. Exceptions Асинхронный

  10. Exceptions Почему это важно?

  11. Это работает: Exceptions

  12. А это уже нет: Exceptions

  13. Exceptions Можно вот так: Но это ловит ошибки всего процесса

  14. Node JS Нам нужен асинхронный try…

  15. Domain API Domain API

  16. Domain API

  17. Best practice Не используйте throw в вашем коде!! В Node JS принято возвращать ошибки первым параметромв callback

  18. Ошибка в асинхронном коде: Best practice

  19. Best practice

  20. Ошибка в синхронном коде: Best practice

  21. Best practice

  22. Best practice Если мы все будем делать правильно то наше приложение не будет падать? Не все так просто мой друг…

  23. Best practice Ваше приложение после npm install

  24. Best practice Если вы поймали эксепешен в Node JS, то лучше всего завершить процесс!

  25. Best practice А что может плохого случится если яне буду завершать процесс? Ну к примеру у тебя кончилась память…

  26. Node JS Process User Node JS Process User User

  27. Node JS Process User Node JS Process User User

  28. Cluster API Cluster API

  29. Node JS Master Process Cluster API User Node JS Worker Process User Node JS Worker Process User User Node JS Worker Process User

  30. Node JS Master Process Cluster API User Node JS Worker Process User Node JS Worker Process User User Node JS Worker Process User

  31. Cluster API

  32. isWorker? YES server.js Worker.js Worker.js Worker.js Domain Cluster API Domain Domain NO Master.js Start worker Domain Need more workers? NO YES server.listen() cluster.fork([env])

  33. pm.createWorker() Cluster API Worker Master Process Manager worker = cluster.fork() worker.listen(readyEvent) worker.listen(taskDoneEvent) worker.listen(errorEvent) Workers pool Worker process.exit(1) Worker Worker pm.createWorker()

  34. Workers pool pm.executeTask() Cluster API Worker Worker Worker Find worker Master Process Manager worker.send(textMessge) Worker do some work process.send(textMessge)

  35. Вопросы

  36. Ссылочки Node JS API: http://nodejs.org/api/domain.html http://nodejs.org/api/cluster.htm Мой Github: https://github.com/AlexTiTanium Email: kucherenko.email@gmail.com

More Related