SlideShare a Scribd company logo
1 of 16
Проект “Ниҳол”.
Некоторые особенности и опыт
веб-разработки.
Группа разработчиков CODE.TJ:
Раджабов Комил
Что такое “Ниҳол” ?
“Ниҳол” – это упрощенный и легкий фреймворк
для разработки веб-приложений и веб-сервисов.
Он разработан на базе PHP и JavaScript. Простота
и легкость в использовании, а также модульная
структура придают ему гибкость и возможность
масштабирования.
Примечание: Фреймворк (каркас) – это структура
программной системы, а также набор готовых
компонентов и моделей, облегчающих разработку
программного продукта.
О том как появился проект
В 2011-м году мой друг обратился ко мне с просьбой
помочь ему с разработкой небольшого приложения
для корпоративных нужд. Примерно так все и
началось…
Отмечу, что это произошло после моего приезда из
Москвы, где я работал в команде над одним B2B
проектом, и на тот момент у меня уже был некоторый
опыт разработки (VB, C#, JS, PHP). Видимо именно
тогда пришла мысль о создании некоего удобного
инструмента, который бы позволил разрабатывать
веб-приложения в дальнейшем (затем я начал работу
еще над одним проектом также на базе вновь
разработанного единого каркаса).
Структура “Ниҳол”
Система логически разделена
на три основных составляющих
– это ядро, модули приложения
(back-end) и пользовательский
интерфейс (front-end). На
сегодня в основе “Ниҳол”
заложены принципы объектно-
ориентированного
программирования (ООП) и
собственная реализация
шаблона проектирования MVC
(Модель-Представление-
Контроллер).
Файловая иерархия
NIHOL
├───app
│ ├───mvc
│ │ ├───controllers
│ │ ├───models
│ │ └───views
│ ├───pages
│ └───sql
├───core
│ ├───lib
│ └───mvc
│ ├───controllers
│ ├───models
│ └───views
└───ui
├───templates
│ └───appname
│ ├───css
│ └───img
│ └───ico
└───tools
├───bootstrap
│ ├───css
│ ├───fonts
│ └───js
└───jquery
└───ui
├───css
│ └───smoothness
│ └───images
└───js
└───i18n
Инициализация веб-приложения происходит следующим образом:
запускается стартовый скрипт, затем загружается файл
конфигурации, далее происходит загрузка основного скрипта ядра,
который в свою очередь инициализирует основные компоненты
каркаса, приложения и пользовательского интерфейса. Далее
взаимодействие происходит с модулями приложения и ядра
посредством URL, REQUEST, ROUTER и других классов системы.
Хронология развития
О коде
За время работы над развитием проекта применялись разнообразные подходы при написании
кода. В ранних версиях каркас разрабатывался с обильным применением функций, затем начался переход
к повсеместному применению ООП, то есть функции преобразовались в методы неких классов, затем
классы группировались в области имен и т.д. Например, на смену стандартным функциям для работы с
базами данных в “Ниҳол” стал применяться функционал PDO, что позволяет делать приложения более
безопасными и гибкими по отношению к источникам данных. Также повсеместно применялись успешные
практики сообщества PHP-разработчиков для решения тех или иных задач проектирования.
В системе есть своя реализация принципов шаблона (паттерна) проектирования MVC, также встречаются
шаблоны типа «синглтон», применяется autoloader классов и многие другие полезные приемы. Что
касается пользовательского интерфейса, то “Ниҳол” позволяет интегрировать сторонние инструменты,
такие как JQuery, JQuery UI, Bootstrap и др., это добавляет удобство для разработки, при этом также
сохраняется возможность использования своих собственных шаблонов и front-end скриптов. В ходе
работы над некоторыми конкретными задачами приходилось реализовывать возможности локализации
интерфейса, в том числе и на таджикский язык. В ядре системы имеются модули управления
пользователями и группами пользователей, кроме того есть панель управления для пользователей и
администраторов.
Модульная структура дает возможность управлять логическими частями приложения, при
этом устанавливать необходимый уровень доступа. В настоящий момент продолжается процесс
совершенствования ядра системы, например, предпринимаются шаги к формализации собственного API
каркаса. Процесс разработки для меня представляется одновременно увлекательным и полезным с точки
зрения изучения технологий программирования и получения опыта проектирования.
Таким образом, “Ниҳол” – это open source проект, которому есть куда развиваться =)
Применяемые технологии
Примеры реализации
Так сложилось, что многие приложения, созданные на базе “Ниҳол”
разрабатывались для внутренних нужд тех или иных проектов
(компаний), поэтому многие из них не опубликованы в широком доступе
и тем не менее я постараюсь рассказать Вас о некоторых примерах
реализации проектов на базе данной системы.
Проект автоматизированного мониторинга
Данный программный продукт был реализован для осуществления автоматизированного
мониторинга хода реализации проекта «Управление инвестициями на питание в наиболее
необеспеченные продовольствием районы Хатлонской области». Он охватывал город
Душанбе и 10 районов Хатлонской области, откуда посредством каналов связи (3G модемы
осуществлялся доступ к приложению и базе данных).
Формы для ввода информации и сводные таблицы
Статистика системы по районам
Проект электронного анкетирования
Проект сокращенно был назван «RBF». Суть проекта провести детальное
анкетирование медицинских учреждений с целью дальнейшего анализа
и планирования распределения средств на их развитие.
Вопросник
Вопросник содержал порядка 300 вопросов, были большие формы с обработкой
зависимостей… Была привязка данных к точкам карте (геолокация)…
Один из новых проектов
Данный проект автоматизирует процесс управления и обработки отчетов телефонного
биллинга… Работает с отчетами в формате XML, преобразует при необходимости в
Excel или веб-вариант, предоставляя доступ пользователей к личным кабинетам,
вывод статистики, содержание справочной информации и др.
СПАСИБО ЗА ВНИМАНИЕ!
Наши контакты:
Website: http://code.tj; E-mail: team@code.tj;
http://facebook.com/groups/code.tj

More Related Content

Similar to Проект "Нихол"

Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60. Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60. Yana Brodetski
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
Предпроектная работа над сайтом
Предпроектная работа над сайтомПредпроектная работа над сайтом
Предпроектная работа над сайтомNimax
 
Облачные вычисления и сервисы: классификация, основные функции и недостатки
Облачные вычисления и сервисы: классификация, основные функции и недостаткиОблачные вычисления и сервисы: классификация, основные функции и недостатки
Облачные вычисления и сервисы: классификация, основные функции и недостаткиТранслируем.бел
 
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного веба
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного вебаWUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного веба
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного вебаYury Vetrov
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)romachka_pole
 
Обзор систем совместной работы
Обзор систем совместной работыОбзор систем совместной работы
Обзор систем совместной работыАнтон Широков
 
Обзор систем совместной работы
Обзор систем совместной работыОбзор систем совместной работы
Обзор систем совместной работыolden_idle
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Qualium Systems – Introduction
Qualium Systems – IntroductionQualium Systems – Introduction
Qualium Systems – IntroductionKostiantyn Levin
 
внедрении Wpf в сложных системах
внедрении Wpf в сложных системахвнедрении Wpf в сложных системах
внедрении Wpf в сложных системахWhiteMbIXA
 
облачные вычисления и сервисы
облачные вычисления и сервисыоблачные вычисления и сервисы
облачные вычисления и сервисыValeriya Kulikova
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в ЯндексеYandex
 
облачные вычисления и сервисы
облачные вычисления и сервисыоблачные вычисления и сервисы
облачные вычисления и сервисыValeriya Kulikova
 

Similar to Проект "Нихол" (20)

Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60. Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60.
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
Предпроектная работа над сайтом
Предпроектная работа над сайтомПредпроектная работа над сайтом
Предпроектная работа над сайтом
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
Perfect Vision Soft
Perfect Vision SoftPerfect Vision Soft
Perfect Vision Soft
 
Облачные вычисления и сервисы: классификация, основные функции и недостатки
Облачные вычисления и сервисы: классификация, основные функции и недостаткиОблачные вычисления и сервисы: классификация, основные функции и недостатки
Облачные вычисления и сервисы: классификация, основные функции и недостатки
 
нек спо
нек спонек спо
нек спо
 
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного веба
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного вебаWUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного веба
WUD2013: Юрий Ветров — Унификация, vol. 1. Фреймворк Mail.Ru для мобильного веба
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)
 
Обзор систем совместной работы
Обзор систем совместной работыОбзор систем совместной работы
Обзор систем совместной работы
 
Обзор систем совместной работы
Обзор систем совместной работыОбзор систем совместной работы
Обзор систем совместной работы
 
Appery.io Ukraine_2016
Appery.io Ukraine_2016Appery.io Ukraine_2016
Appery.io Ukraine_2016
 
тема 12
тема 12тема 12
тема 12
 
CodeCamp 2011 //BSAnalytics.com
CodeCamp 2011 //BSAnalytics.comCodeCamp 2011 //BSAnalytics.com
CodeCamp 2011 //BSAnalytics.com
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Qualium Systems – Introduction
Qualium Systems – IntroductionQualium Systems – Introduction
Qualium Systems – Introduction
 
внедрении Wpf в сложных системах
внедрении Wpf в сложных системахвнедрении Wpf в сложных системах
внедрении Wpf в сложных системах
 
облачные вычисления и сервисы
облачные вычисления и сервисыоблачные вычисления и сервисы
облачные вычисления и сервисы
 
Фронтенд в Яндексе
Фронтенд в ЯндексеФронтенд в Яндексе
Фронтенд в Яндексе
 
облачные вычисления и сервисы
облачные вычисления и сервисыоблачные вычисления и сервисы
облачные вычисления и сервисы
 

More from E-Journal ICT4D

Taj keyboard presentation
Taj keyboard presentationTaj keyboard presentation
Taj keyboard presentationE-Journal ICT4D
 
Открытые данные общеобразовательных учреждений г. Душанбе
Открытые данные общеобразовательных учреждений г. ДушанбеОткрытые данные общеобразовательных учреждений г. Душанбе
Открытые данные общеобразовательных учреждений г. ДушанбеE-Journal ICT4D
 
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣ
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣ
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣE-Journal ICT4D
 
рустам назаров, уктам кимсанов
рустам назаров, уктам кимсановрустам назаров, уктам кимсанов
рустам назаров, уктам кимсановE-Journal ICT4D
 
рустам назаров, уктам кимсанов
рустам назаров, уктам кимсановрустам назаров, уктам кимсанов
рустам назаров, уктам кимсановE-Journal ICT4D
 
Kanevskiy. mobile g cloud. from russia with the success
Kanevskiy. mobile g cloud. from russia with the successKanevskiy. mobile g cloud. from russia with the success
Kanevskiy. mobile g cloud. from russia with the successE-Journal ICT4D
 
E gov successfactors-korea_isaac_kim_final
E gov successfactors-korea_isaac_kim_finalE gov successfactors-korea_isaac_kim_final
E gov successfactors-korea_isaac_kim_finalE-Journal ICT4D
 
E governance dushanbe 2012 katrin-nymanmetkalf
E governance dushanbe 2012 katrin-nymanmetkalfE governance dushanbe 2012 katrin-nymanmetkalf
E governance dushanbe 2012 katrin-nymanmetkalfE-Journal ICT4D
 
Egov afghanistan presentation omar ansari
Egov afghanistan presentation omar ansariEgov afghanistan presentation omar ansari
Egov afghanistan presentation omar ansariE-Journal ICT4D
 
Apcict efforts4 humancapacitydevelopment_asomtalk_tajik
Apcict efforts4 humancapacitydevelopment_asomtalk_tajikApcict efforts4 humancapacitydevelopment_asomtalk_tajik
Apcict efforts4 humancapacitydevelopment_asomtalk_tajikE-Journal ICT4D
 
Международная программа «Электронное управление в целях устойчивого развития ...
Международная программа «Электронное управление в целях устойчивого развития ...Международная программа «Электронное управление в целях устойчивого развития ...
Международная программа «Электронное управление в целях устойчивого развития ...E-Journal ICT4D
 
About ICT4D Journal Tajikistan
About ICT4D Journal Tajikistan About ICT4D Journal Tajikistan
About ICT4D Journal Tajikistan E-Journal ICT4D
 
Open Education resource - Dilovar Munavvarov
Open Education resource - Dilovar MunavvarovOpen Education resource - Dilovar Munavvarov
Open Education resource - Dilovar MunavvarovE-Journal ICT4D
 
Workshop - how to make your research open
Workshop - how to make your research openWorkshop - how to make your research open
Workshop - how to make your research openE-Journal ICT4D
 
Open access as factor to develop information culture - Asomiddin Atoev
Open access as factor to develop information culture - Asomiddin AtoevOpen access as factor to develop information culture - Asomiddin Atoev
Open access as factor to develop information culture - Asomiddin AtoevE-Journal ICT4D
 
Visualization of information - Talat Numonov
Visualization of information - Talat NumonovVisualization of information - Talat Numonov
Visualization of information - Talat NumonovE-Journal ICT4D
 
Learning management system
Learning management systemLearning management system
Learning management systemE-Journal ICT4D
 

More from E-Journal ICT4D (20)

Taj keyboard presentation
Taj keyboard presentationTaj keyboard presentation
Taj keyboard presentation
 
Открытые данные общеобразовательных учреждений г. Душанбе
Открытые данные общеобразовательных учреждений г. ДушанбеОткрытые данные общеобразовательных учреждений г. Душанбе
Открытые данные общеобразовательных учреждений г. Душанбе
 
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣ
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣ
ҷорикунии элементҳои ҳукумати электронӣ дар донишкадаи политехникӣ
 
рустам назаров, уктам кимсанов
рустам назаров, уктам кимсановрустам назаров, уктам кимсанов
рустам назаров, уктам кимсанов
 
рустам назаров, уктам кимсанов
рустам назаров, уктам кимсановрустам назаров, уктам кимсанов
рустам назаров, уктам кимсанов
 
Presentation
PresentationPresentation
Presentation
 
Kanevskiy. mobile g cloud. from russia with the success
Kanevskiy. mobile g cloud. from russia with the successKanevskiy. mobile g cloud. from russia with the success
Kanevskiy. mobile g cloud. from russia with the success
 
Emis
EmisEmis
Emis
 
E gov successfactors-korea_isaac_kim_final
E gov successfactors-korea_isaac_kim_finalE gov successfactors-korea_isaac_kim_final
E gov successfactors-korea_isaac_kim_final
 
E governance dushanbe 2012 katrin-nymanmetkalf
E governance dushanbe 2012 katrin-nymanmetkalfE governance dushanbe 2012 katrin-nymanmetkalf
E governance dushanbe 2012 katrin-nymanmetkalf
 
Egov afghanistan presentation omar ansari
Egov afghanistan presentation omar ansariEgov afghanistan presentation omar ansari
Egov afghanistan presentation omar ansari
 
Apcict efforts4 humancapacitydevelopment_asomtalk_tajik
Apcict efforts4 humancapacitydevelopment_asomtalk_tajikApcict efforts4 humancapacitydevelopment_asomtalk_tajik
Apcict efforts4 humancapacitydevelopment_asomtalk_tajik
 
Международная программа «Электронное управление в целях устойчивого развития ...
Международная программа «Электронное управление в целях устойчивого развития ...Международная программа «Электронное управление в целях устойчивого развития ...
Международная программа «Электронное управление в целях устойчивого развития ...
 
About ICT4D Journal Tajikistan
About ICT4D Journal Tajikistan About ICT4D Journal Tajikistan
About ICT4D Journal Tajikistan
 
Open Education resource - Dilovar Munavvarov
Open Education resource - Dilovar MunavvarovOpen Education resource - Dilovar Munavvarov
Open Education resource - Dilovar Munavvarov
 
Workshop - how to make your research open
Workshop - how to make your research openWorkshop - how to make your research open
Workshop - how to make your research open
 
Open access as factor to develop information culture - Asomiddin Atoev
Open access as factor to develop information culture - Asomiddin AtoevOpen access as factor to develop information culture - Asomiddin Atoev
Open access as factor to develop information culture - Asomiddin Atoev
 
Visualization of information - Talat Numonov
Visualization of information - Talat NumonovVisualization of information - Talat Numonov
Visualization of information - Talat Numonov
 
Information Security
Information SecurityInformation Security
Information Security
 
Learning management system
Learning management systemLearning management system
Learning management system
 

Проект "Нихол"

  • 1. Проект “Ниҳол”. Некоторые особенности и опыт веб-разработки. Группа разработчиков CODE.TJ: Раджабов Комил
  • 2. Что такое “Ниҳол” ? “Ниҳол” – это упрощенный и легкий фреймворк для разработки веб-приложений и веб-сервисов. Он разработан на базе PHP и JavaScript. Простота и легкость в использовании, а также модульная структура придают ему гибкость и возможность масштабирования. Примечание: Фреймворк (каркас) – это структура программной системы, а также набор готовых компонентов и моделей, облегчающих разработку программного продукта.
  • 3. О том как появился проект В 2011-м году мой друг обратился ко мне с просьбой помочь ему с разработкой небольшого приложения для корпоративных нужд. Примерно так все и началось… Отмечу, что это произошло после моего приезда из Москвы, где я работал в команде над одним B2B проектом, и на тот момент у меня уже был некоторый опыт разработки (VB, C#, JS, PHP). Видимо именно тогда пришла мысль о создании некоего удобного инструмента, который бы позволил разрабатывать веб-приложения в дальнейшем (затем я начал работу еще над одним проектом также на базе вновь разработанного единого каркаса).
  • 4. Структура “Ниҳол” Система логически разделена на три основных составляющих – это ядро, модули приложения (back-end) и пользовательский интерфейс (front-end). На сегодня в основе “Ниҳол” заложены принципы объектно- ориентированного программирования (ООП) и собственная реализация шаблона проектирования MVC (Модель-Представление- Контроллер).
  • 5. Файловая иерархия NIHOL ├───app │ ├───mvc │ │ ├───controllers │ │ ├───models │ │ └───views │ ├───pages │ └───sql ├───core │ ├───lib │ └───mvc │ ├───controllers │ ├───models │ └───views └───ui ├───templates │ └───appname │ ├───css │ └───img │ └───ico └───tools ├───bootstrap │ ├───css │ ├───fonts │ └───js └───jquery └───ui ├───css │ └───smoothness │ └───images └───js └───i18n Инициализация веб-приложения происходит следующим образом: запускается стартовый скрипт, затем загружается файл конфигурации, далее происходит загрузка основного скрипта ядра, который в свою очередь инициализирует основные компоненты каркаса, приложения и пользовательского интерфейса. Далее взаимодействие происходит с модулями приложения и ядра посредством URL, REQUEST, ROUTER и других классов системы.
  • 7. О коде За время работы над развитием проекта применялись разнообразные подходы при написании кода. В ранних версиях каркас разрабатывался с обильным применением функций, затем начался переход к повсеместному применению ООП, то есть функции преобразовались в методы неких классов, затем классы группировались в области имен и т.д. Например, на смену стандартным функциям для работы с базами данных в “Ниҳол” стал применяться функционал PDO, что позволяет делать приложения более безопасными и гибкими по отношению к источникам данных. Также повсеместно применялись успешные практики сообщества PHP-разработчиков для решения тех или иных задач проектирования. В системе есть своя реализация принципов шаблона (паттерна) проектирования MVC, также встречаются шаблоны типа «синглтон», применяется autoloader классов и многие другие полезные приемы. Что касается пользовательского интерфейса, то “Ниҳол” позволяет интегрировать сторонние инструменты, такие как JQuery, JQuery UI, Bootstrap и др., это добавляет удобство для разработки, при этом также сохраняется возможность использования своих собственных шаблонов и front-end скриптов. В ходе работы над некоторыми конкретными задачами приходилось реализовывать возможности локализации интерфейса, в том числе и на таджикский язык. В ядре системы имеются модули управления пользователями и группами пользователей, кроме того есть панель управления для пользователей и администраторов. Модульная структура дает возможность управлять логическими частями приложения, при этом устанавливать необходимый уровень доступа. В настоящий момент продолжается процесс совершенствования ядра системы, например, предпринимаются шаги к формализации собственного API каркаса. Процесс разработки для меня представляется одновременно увлекательным и полезным с точки зрения изучения технологий программирования и получения опыта проектирования. Таким образом, “Ниҳол” – это open source проект, которому есть куда развиваться =)
  • 9. Примеры реализации Так сложилось, что многие приложения, созданные на базе “Ниҳол” разрабатывались для внутренних нужд тех или иных проектов (компаний), поэтому многие из них не опубликованы в широком доступе и тем не менее я постараюсь рассказать Вас о некоторых примерах реализации проектов на базе данной системы.
  • 10. Проект автоматизированного мониторинга Данный программный продукт был реализован для осуществления автоматизированного мониторинга хода реализации проекта «Управление инвестициями на питание в наиболее необеспеченные продовольствием районы Хатлонской области». Он охватывал город Душанбе и 10 районов Хатлонской области, откуда посредством каналов связи (3G модемы осуществлялся доступ к приложению и базе данных).
  • 11. Формы для ввода информации и сводные таблицы
  • 13. Проект электронного анкетирования Проект сокращенно был назван «RBF». Суть проекта провести детальное анкетирование медицинских учреждений с целью дальнейшего анализа и планирования распределения средств на их развитие.
  • 14. Вопросник Вопросник содержал порядка 300 вопросов, были большие формы с обработкой зависимостей… Была привязка данных к точкам карте (геолокация)…
  • 15. Один из новых проектов Данный проект автоматизирует процесс управления и обработки отчетов телефонного биллинга… Работает с отчетами в формате XML, преобразует при необходимости в Excel или веб-вариант, предоставляя доступ пользователей к личным кабинетам, вывод статистики, содержание справочной информации и др.
  • 16. СПАСИБО ЗА ВНИМАНИЕ! Наши контакты: Website: http://code.tj; E-mail: team@code.tj; http://facebook.com/groups/code.tj