Найти в Дзене
Универсальная методика к решению задач на примере головоломки «12 монет, 3 взвешивания»
Дано: 12 монет, одна из них фальшивая, отличается только весом. Неизвестно легче или тяжелее. Даны рычажные весы, которые показывают, что груз с одной из сторон тяжелее. За 3 взвешивания необходимо найти фальшивую монетку. Из опыта советую не спешить, решать письменно. Головоломка «12 монет, 3 взвешивания» несколько раз возникала в моей жизни. Первый раз ее задал мне мой товарищ-олимпиадник, решил я ее после олимпиады и пришлось пару часиков поломать голову. И через несколько лет она далось мне не сразу...
236 читали · 6 лет назад
7 шагов для легкой работы с унаследованным кодом
Применяя технику, можно легко перерабатывать код, вникать и дорабатывать существующий функционал, гордясь результатом. Именно за эту технику поступило множество благодарностей от рецензентов и участников авторского курса "Чистый код на практике".⠀ Программа:⠀ 1) Спасательный круг. (Рассеиваем страхи).⠀ 2) Проход по уровням восприятия. ⠀ 3) Глупый рефакторинг. ⠀ 4) Что есть? ⠀ 5) Как быть? ⠀ 6) Вперед! Умный рефакторинг. ⠀ 7) Доработка\отладка ⠀⠀ Автор: Татарков Михаил,...
6 лет назад
Курс по программированию "Чистый код на практике"
Описание Курс создан по результатам обучения сотрудников на протяжении 6 лет. Через методику прошли как ребята с нулевым опытом, так и программисты с 30-летним стажем. В процессе работы приходилось обращать внимание на одни и те же ошибки, помогать их исправлять. Вместе с коллективом повторяющиеся ситуации собрали в теоретический и практический материал. На основе этого материала создан курс. Курс подойдет для программистов, работающих с кодом объемом более 1000 строк кода Начинающим программистам:...
105 читали · 6 лет назад
Загадка по читабельности кода
Как сделать код читабельным? Все понятно? А насколько читабелен код для подсчета статистики трейдинга? 1) Level = High - (High - Low)/2 2) Level = High/2 + Low/2 3) Level = (High + Low)/2 Все числа цены: • High - верхняя граница цены, • Low - нижняя граница цены. Цены от Low до High называются свечи. Как бы...
6 лет назад
Эффективность переключения между задачами
Как эффективно использовать время для выполнения работ, есть ли смысл распараллеливать процесс? Что будет эффективнее, полное погружение в задачу до самого ее конца или периодическое переключение на другие задачи? Иногда выполняю задачу и параллельно веду разработку в конфигурации, т.е. накодил, отправил на обновление конфигурацию и переключился на вторую задачу (обновление происходит всегда долго и я не могу просто так сидеть ничего не делать), вот на сколько все это правильно? Иногда висит...
6 лет назад
5 простых правил удобного для восприятия кода
Ускользает понимание своего или чужого кода? Не можете вникнуть в алгоритм? Проводите кучу время в отладке, но найти место неверной инициализации не получается, а хочется получать удовольствие от кодирования?...
6 лет назад
Предложение в 72 словах
Практический курс преобразования кода в "Чистый". Краткая, структурирования информация. Без воды. 8 тем, 20 упражнений. Практика по теории, шефство Seonior-developer-а От 8 до 15 участников. С воскресения оплатило 8 человек. Разрабатывают на C#, 1C, PHP, Python, C++. 4-ре участника сеньоры, со стажем более 10 лет...
6 лет назад
Шаблон «Конфигурация»
Часто изменяемые данные в целях удобства редактирования, манипулирования, выделяют и называют конфигурацией. Конфигурация может быть реализована обособленным программным кодом, таблицей в базе данных, json-файлом или бинарником. Формат хранения не так важен. Важно, что данные отделяются от кода, обрабатывающего эти данные устраняя опасность его повреждения, устраняя дублирование. Код становится более документируемым. Изменение конфигурации выполняется отдельно от кода по ее обработке и более простым способом...
6 лет назад
16 методов программиста. Метод 9-й. «Фиксируй результат»
Прогресс достигается за счет устранения потерь уже полученного, отката от достигнутой точки. Вспомним историю Сизифа. Вряд ли вы ее хотите повторить. Фиксация результата осуществляется ведением задач в багтрекере, договоренностей на бумаге и в системе управления версиями, созданием описаний архитектурных решений, комментарованием кода, документированием решений, внесением хороших практик в инструкции и регламенты. Диагностика: по несколько раз приходится делать, объяснять одно и тоже, есть страх потери результата...
6 лет назад
16 методов программиста. Метод 8-й «Делай надежно»
Самый быстрый способ продвижения – делать надежно, гарантированно, с проверками, по заранее определённому плану. Нужно быть уверенным в фундаменте, предусматривать возможные эксцессы по завершении каждого шага. Есть правда «Но», но это не должно занимать много времени. Данный метод хорошо реализует TDD (test driver development), когда проверка (тест) создается до того, как будет создан проверяемый код. Соблюдая принципы Unit-тестирования мы получаем не только проверенный код, но слабосвязанную и модульную архитектуру...
6 лет назад
16 методов программиста. Метод 7-й. «Наведи порядок».
Метод заключается в создании схем взаимодействия компонент, приведении кода в читабельный вид, применении принципа «Единственности ответственности», написании плана, оформлении документации, т.е. в создании порядка, - когда все «по полочкам». Применение метода позволяет решить задачу быстро и эффективно за счет приведения постановки задачи кода в вид удобный для понимания. В случае, когда функционал не работает начинающий разработчик применяет метод «Тыка»: пробует удалить, изменить код наобум, вдруг заработает...
6 лет назад
16 методов программиста. Метод 6-й. «Уважай предшественников»
Полезный эффект: экономия времени, сил, обучение и более быстрое развитие. Диагностика: изобретаем каждый раз что-то новое, предыдущий исходный код выкидывается без разбора. Многое уже изобретено и, ознакомившись с опытом предшественников, вы сильно сэкономите время. Существующий код – это тоже изобретение. Кто-то сотворил его до вас, и вы не знаете, сколько было потрачено времени и какие опасности были разрешены предшественником. Цените его. Выкидывать можно только по причине обнаружения фундаментальных ошибок...
6 лет назад