Задал вопрос,

Что написать, приступая к изучению и языку программирования?

Я начал отвечать на вопрос в этом видео. Но читайте дальше для более обширного списка и деталей!

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

1. Найдите известный домен

Под этим я подразумеваю найти домен, который вы знаете лично. Казалось, поколение программистов 80-х написало генераторы персонажей для ролевых игр для Dungeons & Dragons. Я делал сам, но для Robotech. Но есть миллион других доменов, которые вы должны знать, и эти домены — это то, что вы должны выбрать и найти данные и действия в этом домене, которые вы могли бы реализовать с помощью кода.

Два примера, которые я недавно использовал, включают созданный магазин электронной коммерции Better Botz, магазин, который работает с доменом роботов и механизмов, и железными дорогами, такими как Union Pacific, Norfolk Southern, Amtrak, и соответствующим доменом вокруг этого. Многие другие вещи, которые вы могли бы использовать, могут быть транспортом, автомобилем, здравоохранением или, более конкретно, вселенной Гарри Поттера, «Звездных войн», Tumble Leaf, «Улицы Сезам», стилем и тенденциями моды.

2. Смоделируйте домен в соответствии с языком

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

В C#, Java, Rust, Go, Erlang, F# и других языках эти функции и характеристики будут другими. Каким бы ни был язык, составьте список функций и характеристик, которые широко используются, и работайте с ними, чтобы наилучшим образом реализовать домен приложения.

Прерывание списка: рефакторинг

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

«Рефакторинг кода — это процесс реструктуризации существующего компьютерного кода — изменение факторинга — без изменения его внешнего поведения. Рефакторинг предназначен для улучшения дизайна, структуры и/или реализации программного обеспечения (его нефункциональных атрибутов) при сохранении функциональности программного обеспечения. Потенциальные преимущества рефакторинга могут включать улучшенную читаемость кода и снижение сложности; они могут улучшить ремонтопригодность исходного кода и создать более простую, понятную или более выразительную внутреннюю архитектуру или объектную модель для улучшения расширяемости».

3. Учитесь тестировать

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

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

4. Практика чистого кодирования

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

  • Принцип единой ответственности
  • Открытый/закрытый принцип
  • Принцип замены Лисков
  • Принцип разделения интерфейса
  • Принцип инверсии зависимости

См. также: KISS (Keep It Simple Stupid), DRY (Don't Repeat Yourself), YAGNI (You Aint Gonna Need It) и другие.

Идея, стоящая за этим, состоит в том, чтобы сделать код приложения, независимо от языка, настолько простым, насколько это возможно. Побочным эффектом является то, что, как только программное обеспечение становится болезненным для модификации, его следует изменить, чтобы сделать модификацию проще. Таким образом, идея проведения рефакторинга в соответствии с перечисленными принципами SOLID и его непрерывного выполнения позволит поддерживать программное обеспечение в пригодном для использования, поддерживаемом и, можно сказать, даже в эффективном состоянии.

5. Самое сложное предложение: называть и думать

Часто говорят: «Самая сложная проблема в компьютерных науках — называть вещи». с чем я, не в шутку, всем сердцем согласен. Элементы программирования, дизайн программирования, реализация программирования и каждое проницаемое пространство вокруг программирования усеяно плохо названными вещами. Я никого не виню, потому что чертовски сложно получить хорошее название для функций и функций, и чтобы правдоподобность в названии этих функций и функций сохранялась на протяжении всего срока службы.

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

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

В итоге

Чтобы действительно выучить язык программирования наизусть, быть в состоянии легко реализовать практически все, что угодно, это мой список действий и практик, которым нужно следовать. Надеюсь, это даст вам некоторые идеи для изучения того, как лучше всего вы хотели бы заняться изучением языка программирования. Я всегда открыт для предложений, комментариев, мыслей и дискуссий по теме, поэтому не стесняйтесь пинговать меня через Twitter @Adron.

Поиск слов

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

  • Принцип единой ответственности
  • Открытый/закрытый принцип
  • Принцип замены Лисков
  • Принцип разделения интерфейса
  • Принцип инверсии зависимости
  • Как смоделировать домен
  • Практики чистого кодирования
  • Модульное тестирование
  • Практика модульного тестирования
  • ТВЕРДЫЕ принципы
  • Принципы упаковки (REP, CRP, CCP, ADP, SDP, SAP)
  • Не повторяйся (СУХОЙ)
  • Keep It Simple Stupid (KISS)
  • Вам это не понадобится (YAGNI)

Что касается JavaScript, Go, Python, Terraform и другой инфраструктуры, веб-разработки и кодирования в целом, я регулярно транслирую на Twitch по адресу https://twitch.tv/adronhall, публикую VOD на YouTube вместе с совершенно новыми технологиями и металл на https://youtube.com/c/ThrashingCode.

Для большего количества блогов у меня есть https://compositecode.blog и Информационный бюллетень Thrashing Code, подпишитесь на него здесь!