Мое первое путешествие в мир веб-разработчиков

Я занимаюсь программированием с момента ночной сборки Code Igniter с PHP 5.4, и, тем не менее, я помню тот большой репозиторий веб-приложения CRUD, который я создал, чтобы улучшить свои навыки программирования, также для других разработчиков в мире, с которыми я могу поделиться. То же самое касается других языков и фреймворков, с которыми я играл, таких как Yii, Laravel, Django of Python, Ruby on Rails и некоторых других, которые я уже мог забыть.

Как правило, PHP однажды дал мне облегчение, потому что сообщество заверило меня, что я стою на гигантском плече StackOverflow, поэтому, когда я сталкивался с ошибкой, скорее всего, они решили ее задолго до этого. Я думал, что могу делать все с PHP, но потом понял, что никогда не ошибался, когда мои проблемы возникали из-за увеличения количества клиентов, и я не находил для них подходящих решений.

Поэтому я сделал шаг назад и обнаружил, что некоторые другие сообщества предлагают широкий выбор языков или фреймворков веб-разработки. Первой рукой, которая вытащила меня из языка PHP, была Python. довольно своеобразный язык, который заставляет меня аккуратно кодировать, и после того, как я поигрался с Django и создал довольно простой CRUD, я отказался от значительного количества строк кода, которые мне пришлось написать, было больше, чем мне нужно, чем моя старая хорошая структура .

Через месяц я попробовал Ruby Language вместе с фреймворком Rails, но оказалось, что он мне не совсем по душе, и, конечно, мне нужно справиться с несколькими библиотеками javascript, управляемыми с помощью npm. Благодаря Ruby, который познакомил меня с npm и Node JS, я погрузился в веб-сайт Node и обнаружил, что JS запускается на стороне сервера.

Я ищу фреймворк для веб-приложений, использующий движок Node, и обнаружил, что наиболее распространенной из упомянутых настроек является MEAN. Это сокращение от Mongo, Express, Angular и, наконец, Node. Когда я впервые услышал и прочитал новости, обзоры и обсуждения на форумах, я знаю, что в мире веб-разработки происходят значительные сдвиги.

Механизм PHP Apache, над которым я работал, будет заменен на NodeJS. Фреймворк Laravel, с которым я работал, будет заменен на Express. Механизм шаблонов пробела, который я использовал для отображения своего содержимого, должен быть заменен на Angular. И, наконец, движок реляционной базы данных MySQL, который я использовал для хранения всех моих данных, должен быть заменен MongoDB, который представляет собой совершенно другой зверь в своей собственной сфере NoSQL.

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





Laravel - PHP-фреймворк для веб-мастеров
Laravel - PHP-фреймворк для веб-мастеров. laravel.com









Промокнуть от MEAN

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

В отличие от старой инфраструктуры PHP, с которой я работал, наличие npm вместе с его большой коллекцией модулей действительно дает мне новое представление о том, что может делать этот стек MEAN. После того, как я некоторое время возился со стеком MEAN, мое любопытство побудило меня найти альтернативу этому стеку, и это привело меня к фреймворку под названием MeteorJS.

Этот фреймворк обещал мне лучший подход, чем стек MEAN, поскольку устранял проблемы с подключением инфраструктур библиотек с помощью простой команды «meteor create yourApp». Эта простая команда предоставит вам полностью рабочий шаблон, который вы можете изменить до любой степени сложности, о которой вы можете подумать. У них даже есть собственный выделенный менеджер пакетов под названием Atmosphere, который содержит библиотеки, поддерживаемые сообществом, хотя можно по желанию включать пакеты npm.

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

Стандартный движок рендеринга, который MeteorJS предлагает новичкам, - это BlazeJS, который представляет собой движок шаблонов, который работает и пахнет как пробел или усы, которые я использовал для работы с Rails давным-давно, но теперь Blaze больше не используется по умолчанию, вы можете выбрать интеграцию фреймворка. с новейшим движком рендеринга, таким как VueJS и ReactJS, хотя я бы предпочел MithrilJS, чем большинство существующих виртуальных библиотек dom.

Больше всего меня поразило то, насколько хорошо MeteorJS справляется с языковыми компиляторами, такими как CoffeeScript. С моей точки зрения, это просто язык, который отмечает все поля того, что должен включать язык (я объясню это в будущей статье). И что еще лучше, любые ошибки приводят к строке кода CoffeeScript, содержащей ошибку, а не к созданным ею строкам JavaScript.



Полагаюсь на MeteorJS

С этого момента я кодировал на MeteorJS все, что нужно моим клиентам, от простых приложений, таких как отчеты о финансах и производительности, рендеринг карт GeoJson с помощью LeafletJS, до последних и текущих моих работ, интегрированного управления информацией о больницах. система для государственной больницы в Индонезии. Последний больше не использует CoffeeScript, а LiveScript, продолжение идеи простоты CoffeeScript, поддерживаемой другой группой разработчиков.

С помощью таких библиотек, как aldeed: simple-schema и ее автоформа, я мог создать рабочий прототип для большинства требований моего клиента за считанные часы, чего я даже не осмелился бы представить, если бы остался в стеке MEAN. Хитрость в том, что вам нужно только определить объектную структуру этой формы информации с помощью SimpleSchema и передать объект в библиотеку автоформ, тогда у вас будет полностью рабочая форма, напоминающая определенную информационную структуру.

Я работал с библиотекой autoform более года, выполнил с ней несколько проектов и вскоре понял, что мне нужно изменить много частей, и не смог этого сделать, поскольку сама библиотека autoform содержит более 10 тысяч строк кода. Он также тесно связан с библиотекой BlazeJS, которая больше не вызывает резонанса с большинством движений разработчиков по переходу на движок рендеринга на основе виртуального dom.

Обе ситуации больше не удовлетворяют ни меня, ни моих клиентов, поэтому я снова сделал шаг назад и начал обдумывать более широкую картину того, что я собираюсь делать дальше. Я был настолько очарован тем, насколько универсальна, но небольшая библиотека MithrilJS, что я могу создавать более сложные приложения со значительно меньшим количеством кода для написания. На данный момент, если я должен подсчитать количество строк каждого репозитория, который у меня есть на моем GitHub, веб-загрузчик GeoJson, о котором я упоминал ранее, состоит только из менее 300 строк кода, а сама интегрированная система управления информацией о больнице состоит только из менее 2 тыс. строк для кодов на стороне сервера и на стороне клиента вместе взятых.



Все мои репозитории веб-приложений на основе MeteorJS доступны для чтения, комментариев и клонирования. Если я могу создавать свои собственные сложные приложения «реального мира» с его помощью, вы тоже. И если вы тоже были разработчиком MeteorJS, поделитесь, пожалуйста, и некоторыми из ваших.