SlideShare a Scribd company logo
Проект “Ниҳол”.
Некоторые особенности и опыт
веб-разработки.
Группа разработчиков 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

PPT
Презентация прототипа GUI Machine: Система подтверждения подписи должностных лиц
PPTX
голубушин
PDF
О тестирование софта: мир качества, жуков и информации.
PDF
Экскурс в мир WEB разработки
PPTX
Презентация "фишек" в расширении PMBOK для проектов разработки ПО
PPT
Презентация для конкурса на лучшую статью по 3SL Cradle
PPT
Что вас ждет на пути реализации Soa (Битрикс отступает)
PPTX
Azure - обзор DevOps
Презентация прототипа GUI Machine: Система подтверждения подписи должностных лиц
голубушин
О тестирование софта: мир качества, жуков и информации.
Экскурс в мир WEB разработки
Презентация "фишек" в расширении PMBOK для проектов разработки ПО
Презентация для конкурса на лучшую статью по 3SL Cradle
Что вас ждет на пути реализации Soa (Битрикс отступает)
Azure - обзор DevOps

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

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

More from E-Journal ICT4D (20)

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

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

  • 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