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

Итак, вот что я узнал на прошлой неделе:

Предупреждение, в следующих абзацах я разоблачаю себя за то, что я смущающе неопытен, лол.

Как протестировать экспресс с мокко и чаем

На этой неделе я начал работать над своим первым серьезным набегом на серверный 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.