Это эссе было изначально опубликовано в The Meteor Chef.

Что ж.

Завтра здесь, в США, День Благодарения, а версия 3.0 сайта все еще не выпущена. Моей первоначальной целью запуска была середина сентября, которая пришла и ушла. Прежде чем вы спросите: Он тоже не уходит из Meteor, не так ли?!, Нет, не совсем. Вместо этого я хотел использовать эту (разочаровывающую) возможность научить своих коллег-разработчиков тому, что я узнал об отставании от проекта. Конечно, это неприятная реальность, но такое случается. Вместо того, чтобы жарить себя на вертеле в голове, кажется разумным поделиться некоторыми уроками, которые я извлек во время разработки v3 этого сайта, и, надеюсь, направить других по менее трудному пути, чем мой собственный.

Что-то, что-то превратите лимоны в лимонад ...

Как v3 превратилась в идею

Версия 3 этого сайта была идеей - в некоторой степени - с момента запуска второй версии в июле 2015 года. Когда эта версия была выпущена, я решил продолжить работу с нашим существующим стеком: Siteleaf (служба статических сайтов) и Amazon S3. Это было не только недорого, но и быстро. Что касается разработки, то это было не очень эффективно. Чтобы попытаться воспользоваться тем, что я изучал с Meteor, я создал отдельное приложение Kitchen, которое служило псевдо-CMS для сайта. Это сработало, но это было похоже на веревочный мост: кухня и сам сайт общались исключительно через запросы API. Это сработало, но до вершины холма не доходило.

В ноябре прошлого года Бенджамин присоединился ко мне, чтобы помочь с редакционными обязанностями. Довольно быстро система, с которой я привык бороться, начала показывать отсутствие гибкости. Я потратил несколько недель на обновления, которые помогли, но, тем не менее, установка «шпагат между двумя консервными банками» была не идеальной. Говоря об этом с Бенджамином, мы решили, что потребуется перестройка сайта. Когда, правда, было неясно.

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

- На основе Meteor и React!
- Запатентованная система комментариев, которая упростила для нас ответ читателям.
- Более четко сформулированная версия нашей услуги коучинга (Chef's Table), адаптированная к урокам. и поведение клиентов с момента его запуска в ноябре 2015 года.
- Улучшенное членство, дополненное контентом только для членов.

Пока наши идеи обретали форму, будущее Meteor было немного неопределенным из-за фиаско внешнего интерфейса Blaze vs. React. Тем не менее, потратив последние шесть месяцев на то, чтобы возиться с React (и наблюдать, как его популярность растет в сообществе JavaScript), я решил, что это правильный выбор, и решил приступить к сборке. Изначально я планировал завершить работу в середине сентября.

Все было хорошо, пока ...

Эта чертовски грязная жизнь

Примерно в начале мая я увидел, что долгосрочные отношения подошли к концу, что оставило мою голову в беспорядке на большую часть лета. В сочетании с растущей грудой непредвиденных расходов и работы (написание, работа по контракту и сама версия 3) прогресс был медленным. Я знал, что это было важно - если не важно, - но человеческий фактор был неизбежен. Урок, который я знал, но о котором нужно было напомнить тогда: непрерывная работа, если она не в хорошем темпе, может навредить вам. Я продвигался вперед, хотя и медленно, с редкими многодневными перерывами между рабочими сессиями.

Примерно к июлю я был тостом. После разговора с другом о медитации за два месяца до этого я внезапно принял решение подать заявку на участие в тихом ретрите в конце августа. Неуверенный в том, приду ли я на самом деле, примерно в июне меня приняли, и я решил, что перерыв (и то, что станет моим первым отпуском за многие годы), является обязательным. Подтверждая это с Бенджамином, мы разработали план, чтобы все на сайте продолжало работать, пока меня не было.

Пересмотренная цель вокруг версии 3 заключалась в том, чтобы завершить работу над основной частью сайта до того, как я уйду, и запустить его после того, как я вернусь. В преддверии своего отъезда я работал на сайте как можно больше (много выходных я был призраком), но выбранная сложность была просто больше, чем я предполагал, чтобы один разработчик закончил за то время, которое я выделил вместе со своими другими. Работа. Можно с уверенностью сказать, сентябрь наступил и ушел, а моя голова все еще была прижата к клавишам.

Навигация в неопределенности Meteor

Было бы упущением, если бы я не указал, что Meteor - как проект - меняется. Летом я поехал навестить друга в Окленд и поработать несколько дней за пределами своего обычного места. В рамках этой поездки я заказал визит, чтобы (наконец) встретиться с людьми из MDG (Meteor Development Group). Это был быстрый визит - просто обед в их штаб-квартире, прогулка и беседа, чтобы выпить кофе, - но этого было достаточно, чтобы увидеть, как обстоят дела в целом и, что более важно, на чем сосредоточена команда. Я увидел то, чего ожидал: смесь работ Галактика и Аполлон. Команда там была заметно озадачена GraphQL и его потенциалом. О самом Метеоре разговоров было мало (хотя большую часть времени я проводил в разговорах с Сашко С. - лидером Аполлона - так что относитесь к этому с недоверием).

Как мы сообщали в течение последних 6 с лишним месяцев, мы вкладываем значительные средства в Apollo, чтобы сделать Meteor лучше, поэтому он привлекает гораздо более широкое сообщество профессиональных разработчиков, чтобы обеспечить его долговечность. В то же время мы согласовываем Meteor (и Apollo) с современной экосистемой профессиональных разработчиков, а не продолжаем делать его закрытым, эзотерическим стеком, который может быть проще в использовании для некоторых, но только для небольшой части разработчика приложений. Мир.

Мир инструментов и платформ для разработчиков развивался с первых дней существования Meteor, и решения ЦРТ в области НИОКР и коммерческой деятельности отражают, в каком направлении, по нашему мнению, движется будущее. Краеугольный камень стратегии расширения на более крупный рынок профессиональных разработчиков также включает новые коммерческие продукты и платные услуги, которые мы уже начали предоставлять для GraphQL через Apollo, продолжая также работать над Meteor и Galaxy.

- Марк Транг, ЦРТ

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

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

Причина, по которой я поднял все это, заключается в том, что работа над v3 немного замедлилась, поскольку я размышлял, как лучше всего спроектировать новый сайт, чтобы он мог поддерживать контент помимо Meteor. По опыту я знал, что гораздо легче замедлить темп и принять эти решения сейчас, чем копаться позже. Быть капитаном этого корабля, его основным автором и ведущим разработчиком означает постоянную согласованность усилий, которая время от времени оставляет без внимания определенные части головоломки. C’est des affaires.

Вы можете сделать что угодно, только не сдавайтесь

v3 близка (рекорд побит, я знаю). Вот что у меня в списке на момент написания:

- Подтверждение существующей работы. Я уверен, что все в порядке, но он был построен за шесть месяцев, поэтому я хотел бы взглянуть на него, чтобы быть уверенным.
- Маркетинговые страницы должны быть спроектированы и реализованы для новых Предложение членства и Chef's Table.
- Обновление импорта контента / комментариев. Импортеры готовы, но мы писали (и вы комментировали!) С тех пор, как они были изначально завершены.
- Маршрутная аутентификация. Я намеренно оставил это, чтобы я мог легко перемещаться по сайту во время разработки. Паттерн в голове, просто нужен код-фу.

Это реальность создания больших вещей в качестве индивидуального разработчика. Это непросто. Я говорю об этом не для павлина, а как напоминание тем, кто находится в дороге. Вы можете делать что угодно и в любом масштабе, но вы должны помнить о том, что требуются долгосрочные и последовательные усилия. Не уподобляйся мне и наивно убеждай себя, что «это легко!» Когда вы признаете проблему сложной, это помогает скорректировать ваши личные ожидания и делает более длительные сроки менее тревожными.

В дополнение к реалистичному анализу, если у меня есть какой-либо другой совет, я должен дополнить ваши идеи. Посмотри на них насквозь. Но, что более важно, найдите время, чтобы подумать как заранее, так и по ходу дела о том, как выглядит будущее вашей идеи (читайте: долгосрочное мышление вместо краткосрочного мышления). Одна из причин, по которой я с оптимизмом смотрю на то, что мы здесь делаем, заключается в том, что я начал думать об этом сайте в контексте постметеора более года назад. Это в сочетании с вашими невероятно положительными отзывами о нашей работе (спасибо!) Помогает мне осознать, что наш успех сводится к чистым усилиям и терпению, а также к постоянному вниманию к будущему веб-разработки (и тому, что это означает для построения бизнеса по разработке программного обеспечения).

v3 будет запущен, будь то ад или высокая вода. Вернуться к работе.