Файл: Критерии выбора средств разработки WEB-приложений).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.05.2023

Просмотров: 156

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

IDE и текстовые редакторы

Если проект простой, и не обладает избыточной функциональностью, то достаточным инструментом может быть использование специализированных текстовых редакторов [108]. В частности, наиболее удобным представляется использование текстовых редакторов для вёрстки фронтэнда веб-приложения.

Примерами таких текстовых редакторов могут быть следующие: HTML-Kit, Atom, Sublime, Vim, Notepad++, vim, emacs, brackets.io, и другие.

При этом, текстовые редакторы, а также IDE, реализованные на web-технологиях, лишены быстродействия на сложном коде. Например, Brackets.io медленно работает на коде от 600-700 строк и выше.

В этом случае, разумно использовать или продвинутые текстовые редакторы, типа Notepad++ или проприетарный Sublime Text с дополнительными плагинами, или использовать IDE, поскольку с ростом кода затруднятся навигация по нему, а также тестирование и отладка [108][109][110].

IDE упрощает разработку бэкэнда благодаря таким функциям, как например, поиск нужного файла, функции в файле, классов, список параметров во всплывающей подсказке к методу, переход к определению метода, контроль синтаксиса. Ключевой плюс – это синтаксический анализ языка программирования.

Это, в свою очередь, увеличивает производительность разработки трудоёмких веб-приложений, равно как и знание быстрых клавиш улучшает производительность в написании кода. Поэтому IDE используют для серьёзных проектов. Так IDE практически незаменим, если предполагается использование каркаса веб-приложения.

Также к плюсам IDE перед редакторами можно отнести автодополнение, инспекцию ошибок, причём, как синтаксических, так и в некоторых случаях – семантических. Несмотря на то, что часть редакторов и обладают функциями автодополнения, они не могут проводить полноценный анализ, находя избыточный или неуместный код. В IDE есть интеллектуальные подсказки, которые освобождают от необходимости помнить названия ненужных функций и их параметров – особенно если в коде порядка 100000 строк. Также только в IDE есть понятие проектов. К ним привязываются настройки, ресурсы, возможность осуществлять поиск, и т. д. Зачастую в редакторах этот функционал реализован только на уровне, открытого каталога файловой системы.

В отношении отладки, редакторы допускают, в основном, модульное тестирование и ведение журнала (логирование), в то время как практически у большинства IDE имеются в наличии отладчики или интеграция с отладчиками; у некоторых – нумерация строк. Для редакторов полноценных реализаций нет – есть только множество плагинов, которые между собой могут конфликтовать, а также обилие версий и веток, имеющих оригинальные настройки, могут оказываться несовместимыми между собой.


Однако, если проект предполагает не более 10-20 файлов – то нет смысла загружать IDE-контейнер из 10-20 файлов, поскольку в этом случае проще использовать именно редактор [108]. Также к минусам IDE можно отнести, в ряде избыточный функционал и требовательные к ресурсам на небольших проектах [111].

Использование IDE для разработки программного обеспечения является прямой противоположностью способу, в котором используются несвязанные инструменты, такие как текстовый редактор, и т. п. Интегрированные среды разработки были созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простыми пользовательскими интерфейсами. Это позволяет разработчику сделать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки. По состоянию на март 2015 года, самые популярные Иды являются Eclipse, и Visual Studio [112]. Для уменьшения барьера вхождения многие достаточно интерактивны, а для облегчения перехода с одной на другую интерфейс у одного производителя максимально близок, вплоть до использования одной IDE.

IDE обычно представляет собой единственную программу, в которой проводится вся разработка. Она, как правило, содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель интегрированной среды заключается в том, чтобы объединить различные утилиты в одном модуле, который позволит абстрагироваться от выполнения вспомогательных задач, тем самым позволяя программисту сосредоточиться на решении собственно алгоритмической задачи и избежать потерь времени при выполнении типичных технических действий (например, вызове компилятора). Таким образом, повышается производительность труда разработчика. Также считается, что тесная интеграция задач разработки может далее повысить производительность за счёт возможности введения дополнительных функций на промежуточных этапах работы.

Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.

Интегрированные среды разработки также часто поддерживают пометки в комментариях в исходном тексте программ, отмечающий места, требующие дальнейшего внимания или предполагающие внесение изменений, такие как TODO, FIXME и т. п. [113]

API

Для стандартизации, отделения интерфейса от реализации, гибкости, экономии ресурсов, используется набор готовых инструментов (классов, процедур, структур, констант и т. д.), предоставляемых сервисом для использования во внешних продуктах – API [114]. К недостаткам можно отнести разнообразие (принципы, форматы), избыточность трафика, зависимость от чужой разработки, единую точку отказа [115].


Существенное преимущество построения веб-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента [1]. Вместо того, чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создаётся один раз для произвольно выбранной платформы и на ней разворачивается. Однако различная реализация HTML, CSS, DOM и других спецификаций в браузерах может вызвать проблемы при разработке веб-приложений и последующей поддержке. Кроме того, возможность пользователя настраивать многие параметры браузера (например, размер шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе приложения.

Другой (менее универсальный) подход заключается в использовании Adobe Flash, Silverlight или Java-апплетов для полной или частичной реализации пользовательского интерфейса. Поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью плагинов), Flash- или Java-приложения могут выполняться с легкостью. Так как они предоставляют программисту больший контроль над интерфейсом, они способны обходить многие несовместимости в конфигурациях браузеров, хотя несовместимость между Java- или Flash-реализациями на стороне клиента может приводить к различным осложнениям.

Уже на 2015 год технологию Adobe Flash не поддерживают Chrome, Safari, и другие популярные браузеры [116].

В связи с архитектурным сходством с традиционными клиент-серверными приложениями, в некотором роде «толстыми» клиентами, существуют споры относительно корректности отнесения подобных систем к веб-приложениям; альтернативный термин "Богатое Интернет приложение" (англ. Rich Internet Applications) [117].

Вывод. В условиях коммерческой деятельности, важно учитывать не только технические отличия между теми или иными средствами разработки, но и экономическую составляющую, поскольку производительность может являться критическим фактором при выборе заказчиком исполнителя на реализацию проекта по разработке веб-приложения. Ведь именно понимание ограничений самим разработчиком на небольшом проекте, или определённых менеджером проектов в рамках выбираемой методологии разработки, позволяет более эффективно подобрать ресурсы для реализации проекта, в соответствие с закрепленными контрактом сроками. Также эффективно, когда команда разработчиков придерживается единых стандартов для облегчения сопровождения веб-приложения.


ЗАКЛЮЧЕНИЕ

Итак, общая цель у опытных веб-разработчиков — это разработка и развертывание гибких и легко сопровождаемых приложений, а сам процесс разработки, разумнее упростить и ускорить, что особенно важно при выполнении коммерческих заказов.

В ряде случаев, для разработки веб-приложения не обязательно использовать весь арсенал инструментов, когда вместо программирования сайта, вполне достаточно задействовать CMS для реализации небольшого функционала сайта, как например, для лэндинга (или сайта-визитки).

Если же этап программирования неизбежен, чтобы сэкономить время, программисту имеет смысл ориентироваться на тот язык, который ему уже известен, а менеджеру проектов разумнее всего подбирать команду в рамках одного языка.

Для улучшения качества работы команды разработчиков, уменьшения количества ошибок кода, а также для упрощения сопровождения кода, стоит стандартизировать инструменты работы с сервисом (API).

Если бюджеты ограничены, стоит выбирать из бесплатных IDE, помня, что чем более популярна IDE – тем более она функциональна.

Итак, обобщая результаты исследования, всё можно свести к простой идее. Исходя из назначения средств разработки, для максимальной эффективности, стоит сопоставлять уровень сложности в реализации конкретных веб-проектов с техническими требованиями заказчика, а для того, чтобы точно знать, какой инструмент лучше выбрать, стоит понимать области применения используемого набора технических средств разработки.

СПИСОК ЛИТЕРАТУРЫ

  1. Nations Daniel Web Applications / Nations Daniel
  2. Jekyll Tips Why use a static site generator? / Jekyll Tips.
  3. Why Static Website Generators Are The Next Big Thing // Smashing Magazine.
  4. Doyle Barry, Lopes Cristina Videira Survey of Technologies for Web Application Development / Doyle Barry, Lopes Cristina Videira // URL: https://arxiv.org/abs/0801.2618.
  5. Gabbrielli Marchiory Dynamic wib sites / Gabbrielli Marchiory // URL: https://www.w3.org/People/Massimo/papers/rmm.pdf .
  6. Mariela Hristova Dynamic Web Pages / Mariela Hristova // URL: https://www.ischool.utexas.edu/~hristova/ia/ .
  7. Pete LePage Responsive Web Design Basics | Web // Google Developers.
  8. Total number of Websites // URL: internetlivestats.com .
  9. Олищук А.В. Разработка Web-приложений на PHP 5. Профессиональная работа. / А.В. Олищук. - М.: «Вильямс», 2006. - С. 352. - ISBN 5-8459-0944-9.
  10. Мержевич В. Основы верстки / В.Мержевич // URL: htmlbook.ru (дата обращения: 23.09.2010).
  11. Савельева Н. Системы управления контентом (рус.) // Открытые системы. — 2004. — № 4.
  12. Лайза К., Джанет Г. Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд = Agile Testing: A Practical Guide for Testers and Agile Teams / К.Лайза, Джанет Г. - М.: «Вильямс», 2010. - 464 с. - (Addison-Wesley Signature Series). - 1000 экз. -ISBN 978-5-8459-1625-9.
  13. Джесси Джеймс Гарретт Новый подход к веб-приложениям / Джесси Джеймс Гарретт.
  14. Шестаков В.С., Сагидуллин А.С. Применение технологии Websocket в Web-приложениях технологического назначения // Приборостроение.- 2015.
  15. Колисниченко Д. Движок для вашего сайта. CMS Joomla!, Slaed, PHP-Nuke. / Д. Колисниченко – М.: Петербург: БХВ, 2008. — 352 с. — ISBN 978-5-9775-0258-0.
  16. Ann Rockley, Pamela Kostur, Steve Manning Managing Enterprise Content: A Unified Content Strategy / Ann Rockley, Pamela Kostur, Steve Manning // New Riders.- 2003.
  17. Martin White The content management handbook / Martin White // Facet Publishing.- 2005.
  18. Bob Boiko. John Wiley & Sons Content Management Bible / Bob Boiko. John Wiley & Sons, 2005.
  19. Moving Media Storage Technologies: Applications & Workflows for Video and Media S2011. Page 381
  20. "W3Techs content management usage". August 8, 2016.
  21. Нестеренко Н., Шантарин А. Контент-менеджмент / Н. Нестеренко, А. Шантарин - М.: Солон-Пресс, 2014. — 256 с. — ISBN 978-5-91359-143-2.
  22. Денис Баженов Каркасы, каркасы, каркасы… // PHP Inside. — phpclub.ru, 2005. — № 11. — С. 5-10.
  23. Дмитрий Попов CMF как инструмент freelance-разработки (Доклад на осенней конференции PHPConf 2004) // PHP Inside. — phpclub.ru, 2004. — № 7. — С. 97-107. Архивировано из первоисточника 7 мая 2006.
  24. Рогачев С. Обобщённый Model-View-Controller // rsdn.org. — 2007.
  25. O'Connor, William (2014-08-19) The Drupal API turns a CMS into a true enterprise application - O'Reilly Radar // O'Reilly Media. (Retrieved 2017-04-11)
  26. Diana Dupuis Drupal Is a Framework: Why Everyone Needs to Understand This // Linux Journal. (Retrieved 2013-05-15)
  27. Shoavi Orly The All-Star Winners of Mobile App Tools (SDKs) // SafeDK.
  28. Чибисов Д.М. Правовая природа Соглашения по торговым аспектам прав интеллектуальной собственности // Научный вестник Ужгородского национального университета : Статья. — 2012. — № 19.
  29. Benjamin Mako Hill. Freedom for Users, Not for Software (англ.) (23 октября 2011). (дата обращения: 07.04.2013)
  30. Improving Software Security with Precise Static and Runtime Analysis, Benjamin Livshits, section 7.3 "Static Techniques for Security," Stanford doctoral thesis, 2006. URL: http://research.microsoft.com/en-us/um/people/livshits/papers/pdf/thesis.pdf
  31. Руководство по профилированию производительности для начинающих, справка Visual Studio 2015, Microsoft.
  32. Sanjeev Kumar Aggarwal and M. Sarath Kumar (2003). "Debuggers for Programming Languages". In Y.N. Srikant and Priti Shankar. The Compiler Design Handbook: Optimizations and Machine Code Generation. Boca Raton, Florida: CRC Press. pp. 295–327. ISBN 978-0-8493-1240-3.
  33. http://anjuta.org/features/
  34. https://www.jetbrains.com/objc/
  35. https://www.embarcadero.com/products/cbuilder/features
  36. http://www.codeblocks.org/features
  37. https://codelite.org/
  38. "Dev-C++". https://sourceforge.net/p/dev-cpp/discussion/33286/thread/988fe550/ . Retrieved 8 September 2015.
  39. http://orwelldevcpp.blogspot.ru/
  40. http://libre.adacore.com/tools/gps/
  41. https://www.jetbrains.com/clion/
  42. http://www.monodevelop.com/
  43. http://wiki.qt.io/Category:Tools::QtCreator
  44. http://www.philasmicos.com/phes/features.php
  45. http://www.oracle.com/technetwork/server-storage/developerstudio/features/index.html
  46. IBM Rational Software Architect
  47. https://www.slickedit.com/products/slickedit/cool-features
  48. http://ultimatepp.org/
  49. http://www.openwatcom.org/
  50. https://scitools.com/
  51. codeforge.com
  52. http://kuzya.sourceforge.net/ru/
  53. https://wiki.gnome.org/Apps/Builder
  54. https://code.google.com/archive/p/qdevelop/
  55. https://bluej.org/
  56. http://www.eclipse.org/ide/
  57. https://www.embarcadero.com/
  58. https://developer.apple.com/xcode/
  59. http://jcreator.com/
  60. http://www.jgrasp.org/
  61. http://ninja-ide.org/
  62. http://lighttable.com/
  63. http://www.oracle.com/technetwork/developer-tools/adf/adf-11-overview-1-129504.pdf
  64. https://servoy.com//
  65. https://www.jetbrains.com/webstorm/
  66. http://www.geany.org/
  67. https://www.kdevelop.org/
  68. https://www.activestate.com/komodo-ide
  69. http://padre.perlide.org/
  70. http://www.zend.com/en/products/studio#features
  71. https://www.jetbrains.com/phpstorm/
  72. http://www.codelobster.com/
  73. Каждан И. PHP Expert Editor. Программа для написания, правки и отладки PHP-скриптов // «Компьютерная газета» №25.-2006.
  74. http://www.nusphere.com/products/phped.htm
  75. https://www.eclipse.org/che/
  76. https://codeanywhere.com/features/editor
  77. http://www.adobe.com/ru/products/dreamweaver.html
  78. http://eric-ide.python-projects.org/
  79. https://docs.python.org/3/library/idle.html
  80. https://www.jetbrains.com/pycharm/
  81. https://sourceforge.net/projects/pyscripter/
  82. https://pythonhosted.org/spyder/
  83. https://www.visualstudio.com/ru/
  84. https://www.visualstudio.com/ru/vs/visual-studio-express/
  85. https://code.visualstudio.com/
  86. Frederic Lardinois. Microsoft Launches Visual Studio Code, A Free Cross-Platform Code Editor For OS X, Linux And Windows. TechCrunch (Apr 29, 2015).
  87. http://www.icsharpcode.net/OpenSource/SD/Default.aspx
  88. https://pythonide.blogspot.ru/
  89. http://thonny.org/
  90. http://www.wingware.com
  91. https://bitbucket.org/aafshar/pida-main/wiki/Home
  92. http://www.aptana.com/
  93. https://www.jetbrains.com/ruby/
  94. https://netbeans.org/community/releases/82/
  95. Ким Хелдман Профессиональное управление проектами / Ким Хелдман — М.: Бином, 2005. — С. 517. — ISBN 5-94774-234-9.
  96. Лапыгин Ю. Н. Управление проектами: от планирования до оценки эффективности / Ю. Н. Лапыгин — М.: Омега-Л, 2008. — С. 252. — ISBN 978-5-370-00985-3.
  97. Royce Winston (1970), Managing the Development of Large Software Systems (англ.) URL: http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
  98. Martin, James (1991). Rapid Application Development. Macmillan. ISBN 0-02-376775-8.
  99. Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software Development Methods: Review and Analysis. VTT Publications 478.
  100. Электронная Система Медицинских Осмотров URL: http://www.kvzrm.ru/
  101. Стив Макконнелл Влияние итеративных подходов на предварительные условия // Совершенный код = Code Complete. — Русская Редакция, Питер, 2005. — С. 31. — 896 с.
  102. Surana P (2006) Meta-Compilation of Language Abstractions. Archived from the original (PDF) on 2015-02-17. (Retrieved 2008-03-17)
  103. Kuketayev The Data Abstraction Penalty (DAP) Benchmark for Small Objects in Java. (Retrieved 2008-03-17).
  104. Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — Packt (англ.)русск., 2009. — P. 58-68. — 183 p. — ISBN 978-1-847195-06-7.
  105. Getting Up and Running Quickly with Scaffolding // URL: http://guides.rubyonrails.org/getting_started.html#getting-up-and-running-quickly-with-scaffolding
  106. Terence John Pratt. Enforcing strict model-view separation in template engines. — Proceedings of the 13th international conference on World Wide Web, 2004. — ISBN 1-58113-844-X
  107. Enforcing Strict Model-View Separation in Template Engines URL: http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf
  108. Юрий Меркулов. Путеводитель по текстовым редакторам. Часть 4. iXBT (8 февраля 2008).
  109. http://www.sublimetext.com/
  110. https://notepad-plus-plus.org/
  111. Rehman, Christopher Paul, Christopher R. Paul. The Linux Development Platform: Configuring, Using and Maintaining a Complete Programming Environment / Rehman, Christopher Paul, Christopher R. Paul – M.: 2002. ISBN 0-13-009115-4
  112. http://pypl.github.io/IDE.html
  113. https://www.approxion.com/?p=39
  114. Clarke, Steven (2004) Measuring API Usability. Dr. Dobb's. (Retrieved 29 July 2016).
  115. Emery David Standards, APIs, Interfaces and Bindings Acm.org. (Re trieved 2016-08-08).
  116. Ларри Зельцер Насыщенные интернет-приложения привлекательны для злоумышленников // PCWeek, 15.09.2010.
  117. Константин Ковалев RIA — значит свобода // Мир ПК. — 2008. — № 3. — С. 62-65. — ISSN 0235-3520.