День девятьсот сорок четвёртый. #Оффтоп
Советы по Улучшению Ваших Навыков Разработки в .NET. Начало
1. Изучите структуры данных и алгоритмы
Разработка ПО выходит за рамки простого знания функций и синтаксиса языка программирования. И это не только поиск проблемы в Google, копирование кода и добавление костылей, чтобы он работал. Как разработчик ПО вы несёте ответственность за каждую строку кода, которая будет продумана, написана, поддержана или удалена. Решения, которое просто работает, иногда недостаточно.
Структуры данных и алгоритмы - непростая тема для понимания. Требуется время, чтобы понять их, и опыт, чтобы знать, когда их лучше всего применять. Поначалу может быть сложно начинать работу и разрабатывать решения с помощью этих инструментов. Не торопитесь, двигайтесь вперёд постепенно, попробуйте ещё раз, если не получилось. Стремление побыстрее что-то понять не принесёт вам никакой пользы. На самом деле при изучении нового лучше притормозить и впитать как можно больше информации.
«Если вы знаете врага и знаете себя, вам не нужно бояться результата сотни сражений. Если вы знаете себя, но не знаете врага, при каждой одержанной победе вы также будете терпеть поражение. Если вы не знаете ни врага, ни себя, вы проиграете в каждой битве».
- Сунь-цзы, Искусство войны
Зная себя и свои инструменты, вы сможете привести свои программные проекты к успеху. По крайней мере, я так понимаю смысл этой цитаты.
2. Не переусложняйте решение
Бывают случаи, когда бизнес-логика не раскрывается в документации, и возникает необходимость глубоко погрузиться в реализацию, чтобы хоть как-то разобраться в ней. В коде важные знания могут быть скрыты или сделаны неявными с помощью нескольких уровней абстракций и интенсивного использования паттернов проектирования.
Существует ложное чувство уверенности в том, что использование слишком сложных компонентов для реализации ваших систем при разработке ПО принесёт пользу. Кроме того, лидеры сообщества, на которых мы смотрим, инструменты с открытым исходным кодом на GitHub, которые мы можем найти, прочие статьи от мэтров индустрии – всё подталкивает к этому. Сложные системы требуют большой умственной нагрузки от разработчиков ПО. Вам нужно анализировать сложные ментальные модели, чтобы попытаться выяснить, работает ли что-то так, как ожидалось. Это тем более трудно, если код не помогает вам в этом.
В последние несколько лет я стал использовать функциональное программирование среди других инструментов разработки. Что мне нравится в этой парадигме, так это то, что вам нужно отделить поведение от собственно данных. Структуры данных могут явно инкапсулировать лишь небольшие фрагменты бизнес-логики. Поскольку определение типа в языках типа F# требует минимальных затрат и церемоний, часто можно встретить множество типов.
Когда я освоился с F#, я заметил, что нахожу время, чтобы продумать, как должны формироваться данные. Не только форма имеет значение, но и её характеристики и то, как она будет связана с другими компонентами. Будучи более строгим языком, чем C#, F# заставляет меня тратить больше времени на обдумывание и проектирование того, как части будут объединены для достижения своей цели (целей). Когда я вижу, что часть данных становится слишком сложной, я быстро разбиваю её на более мелкие компоненты, чтобы чтение кода было менее утомительным для тех, потребуется понять предназначение системы/приложения.
Это оказывает существенное влияние на подход к созданию ПО. Я применял эту концепцию всякий раз, когда разрабатывал ПО на C# или другом языке. Кроме того, выявление взаимосвязей в данных поможет вам во многих отношениях. Тот, кто будет поддерживать код сможет легче понять разницу между построением отношений и реальной бизнес-логикой. Улучшение жизни тех, кто читает ваш код, улучшает вас как разработчика. Вы продемонстрируете черту великих разработчиков: эмпатию к коллегам.
Продолжение следует…
Источник: https://kevinavignon.com/2020/12/23/guidelines-to-improve-your-software-design-skills-with-net-part-i/
Автор оригинала: Kevin Avignon
Post #1160
1.46K
- 👍 1