В настоящее время у меня много целей, включая, помимо прочего, получение лучшей работы, создание большего количества контента и создание интересных проектов. Что касается второй цели, я написал несколько статей за последний год. В статьях в основном описываются проекты, которые я создал, и то, как я их создавал, и они не очень хорошо с этим справляются, если вы спросите меня. После долгих размышлений я пришел к выводу, что мне нужна практика. В погоне за практикой я стараюсь писать меньше о технических подробностях и больше об абстрактных концепциях и учебных пособиях.
Итак, вот что я узнал на прошлой неделе:
Предупреждение, в следующих абзацах я разоблачаю себя за то, что я смущающе неопытен, лол.
Как протестировать экспресс с мокко и чаем
На этой неделе я начал работать над своим первым серьезным набегом на серверный JavaScript с помощью приложения для отслеживания привычек. Для внешнего интерфейса я планирую использовать React или, возможно, Vue, если мне захочется узнать что-то новое. Для серверной части я использую Express с MongoDB и mongoose.js в качестве ODM. В целом я чувствую себя очень комфортно с JavaScript, но, имея опыт работы с Ruby on Rails, я обнаружил, что пишу код более низкого уровня, чем я привык.
Например; mongoose не имеет эквивалента каскадному удалению rails через «зависимое: уничтожение». В результате я обнаружил, что переключаюсь между несколькими вкладками в postman и vscode и документацией мангуста, чтобы создавать и воссоздавать несколько документов, пытаясь понять, как можно использовать пре- и пост-перехватчики мангуста для запуска необходимых последующих удалений. Излишне говорить, что необходимость испытаний была очевидна.
Быстрый поиск в Google привел меня к двум пакетам с чудесными названиями [Mocha]() и [Chai](). Mocha — это среда тестирования, которая запускает тестовые файлы, а Chai предоставляет более качественные утверждения, хотя Mocha можно использовать и отдельно, схема утверждений Chai хороша и напоминает мне [rspec]().
установка проста, просто установите пакеты
npm install — save-dev mocha chai
создать папку для тестов
mkdir test
добавьте тестовый скрипт в ваш package.json
{ “scripts”: [ “start”: “node ./bin/www”, “test”: “mocha test”, ] }
затем создайте папку для своих тестов и проверьте
mkdir test && touch test/app.spec.js
Напишите тесты в app.spec.js, и они будут запускаться, когда вы используете
npm run test
Тестирование — мой самый большой источник сопротивления, и я всегда стремлюсь включить тестирование в свой рабочий процесс.
vscode встроен в отладчик Node
Чтобы вернуться к последней теме в контексте опыта работы с Ruby on Rails. При работе с серверной частью я привык использовать pry для отладки своего кода. Быстрый поиск в Google по запросу эквивалент для доступа к JavaScript не дал ничего интересного. Я привык к простоте отладки JavaScript в браузере и хотел что-то подобное для серверной части. Я знал, что у vscode есть возможности отладки, но я всегда предполагал, что они предназначены для c или чего-то в этом роде, и я был неправ. Оказывается, стандартный vscode может только отладить Node, и им очень легко пользоваться.
Я списал свою медленную разработку на экспресс-обучение и незнание серверного JavaScript, и этот вывод был в основном верным, однако теперь я перемещаюсь от большой ошибки к большой гораздо быстрее, ха-ха.
Значение асинхронного ожидания
Хотя я ни в коем случае не новичок в использовании асинхронного ожидания, мой текущий проект сделал меня пограничным евангелистом. При использовании мангуста в действиях контроллера асинхронное ожидание необходимо для удобочитаемости и может уменьшить количество строк кода как минимум наполовину, если не на две трети в большинстве случаев.
Как использовать обсидиан
Недавно я опубликовал статью о том, почему я перешел с Notion на Obsidian.md, и я скажу, что время, которое я провел с использованием Obsidian с момента публикации этой статьи, только укрепило мою веру в тезис этой статьи:
«Ограничение пробуждает творчество».
Я бы даже расширил этот тезис, сказав, что я считаю, что слишком много возможностей или (особенностей) создает ментальный блок из-за необходимости принимать решения. За последнюю неделю я обнаружил, что стал более организованным и стал лучше создавать вещи.
Как упростить экспресс-маршруты с помощью контроллеров
Я перенес свою логику маршрутизации с самих маршрутизаторов на отдельные контроллеры. Я большой поклонник короткого, лаконичного кода без лишних наворотов. Простота маршрутизатора, который просто вызывает функции, — чистая красота.
Моя цель создания продукта Saas
Я поклонник хакерских новостей и ежедневно просматривая темы, я наткнулся на несколько тем, в которых люди обсуждают свои неудачи, успехи и пути в Saas-бизнесе. Я нахожу это невероятно вдохновляющим, не в том, чтобы быстро разбогатеть на 10 Lamborghini в моем аккаунте Lamborghini, но я хотел бы создать что-то, что обеспечивает достаточную ценность для жизни людей, чтобы они были счастливы тратить на это свои с трудом заработанные деньги.
Мой главный барьер — это идеи, я уверен, что могу запрограммировать что угодно, но мне нужны идеи. Мой план состоит в том, чтобы исследовать рабочие процессы нишевых профессий и выяснить, что я могу сократить, упростить или автоматизировать.
Что я хочу узнать дальше
1. Я до сих пор не совсем понял, как реализовать каскадное удаление/очистку ссылок с помощью мангуста, хотя чувствую, что нахожусь на пороге получения.
2. В течение следующей недели я хочу удобно работать с Mocha и Chai.
3. Я хочу вывести свое понимание git на новый уровень.
4. Аутентификация пользователя в экспресс
Вывод
В целом я доволен тем, что я узнал и сделал на этой неделе, и я рад видеть, что принесет следующая неделя.
Если вам понравилось мое письмо, не стесняйтесь проверить мой веб-сайт и связаться со мной в LinkedIn.