Что в имени тебе моём...
Хорошее имя – это очень важно. Держать в голове информацию о программе и так трудно, поэтому не нужно создавать лишние трудности сложными системами наименований или туманными ссылками. Учитесь давать объектам прозрачные имена – они должны ясно описывать то, что за ними скрывается.
Думайте не только об именах переменных и функций, но и об общепринятых правилах именования типов(классов), пространства имен, макросов и даже файлов исходного кода. В случае если найти единственно верный свод правил именования затруднительно, выработайте единый стиль и придерживайтесь его.
Когда я употребляю слово, – сказал Шалтай-Болтай довольно презрительно, – оно означает только то, что мне от него требуется, – не больше и не меньше.
#tips #name
Хорошее имя – это очень важно. Держать в голове информацию о программе и так трудно, поэтому не нужно создавать лишние трудности сложными системами наименований или туманными ссылками. Учитесь давать объектам прозрачные имена – они должны ясно описывать то, что за ними скрывается.
Думайте не только об именах переменных и функций, но и об общепринятых правилах именования типов(классов), пространства имен, макросов и даже файлов исходного кода. В случае если найти единственно верный свод правил именования затруднительно, выработайте единый стиль и придерживайтесь его.
Когда я употребляю слово, – сказал Шалтай-Болтай довольно презрительно, – оно означает только то, что мне от него требуется, – не больше и не меньше.
#tips #name
Руководитель поневоле
Это административная классика: разработчик, которого назначили руководить командой, потому что продвигать его по технической линии было некуда.
Он – программист и хочет программировать. По характеру он не организатор и не умеет руководить людьми, к тому же он необщителен.
Как быть, если вы один из них: Если вас не устраивает эта роль, добейтесь, чтобы вас перевели на другую работу. Не у каждого есть талант или страсть руководить. Займитесь тем делом, для которого у вас есть нужные качества и которое вам нравится.
Как работать с такими людьми: Будьте благожелательны и постарайтесь чем можно помочь руководителю команды. Вовремя докладывайте ему и старайтесь соблюдать график работ. Если чувствуете, что можете не уложиться в срок, заранее сообщите об этом руководителю, чтобы он смог принять какие-то меры.
#tips #programmer_type
Это административная классика: разработчик, которого назначили руководить командой, потому что продвигать его по технической линии было некуда.
Он – программист и хочет программировать. По характеру он не организатор и не умеет руководить людьми, к тому же он необщителен.
Как быть, если вы один из них: Если вас не устраивает эта роль, добейтесь, чтобы вас перевели на другую работу. Не у каждого есть талант или страсть руководить. Займитесь тем делом, для которого у вас есть нужные качества и которое вам нравится.
Как работать с такими людьми: Будьте благожелательны и постарайтесь чем можно помочь руководителю команды. Вовремя докладывайте ему и старайтесь соблюдать график работ. Если чувствуете, что можете не уложиться в срок, заранее сообщите об этом руководителю, чтобы он смог принять какие-то меры.
#tips #programmer_type
Идиоматика языка - это не для меня
Разработка в рамках конкретного языка предполагает следование определенному стилю кодирования, присущему используемому языку. При этом даже в рамках одного языка в одной компании будут приветствовать использование camelCase, в другой - критиковать его.
Хорошие программисты всегда учитывают идиоматику языка для достижения единообразия стиля кодирования, чтобы каждый программист, имеющий похожий стек, мог с легкостью поддерживать написанный вами код и не обливать вас грязью за вашу безответственность.
#tips #bad_programmers
Разработка в рамках конкретного языка предполагает следование определенному стилю кодирования, присущему используемому языку. При этом даже в рамках одного языка в одной компании будут приветствовать использование camelCase, в другой - критиковать его.
Хорошие программисты всегда учитывают идиоматику языка для достижения единообразия стиля кодирования, чтобы каждый программист, имеющий похожий стек, мог с легкостью поддерживать написанный вами код и не обливать вас грязью за вашу безответственность.
#tips #bad_programmers
Гуру
Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.
Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.
Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.
Как работать с такими людьми: если вам повстречался Гуру, учитесь у него, впитывайте все сведения, и не только технические. Ведь чтобы зарекомендовать себя как Гуру, нужны знания, а не высокомерие.
#tips #programmer_type
Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.
Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.
Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.
Как работать с такими людьми: если вам повстречался Гуру, учитесь у него, впитывайте все сведения, и не только технические. Ведь чтобы зарекомендовать себя как Гуру, нужны знания, а не высокомерие.
#tips #programmer_type
Грамотное программирование
Многие слышат о самодокументируемом коде, но зачастую его ценности не уделяется достаточного внимания, однако это очень грубая ошибка, когда разработчик пренебрегает документированием кода, плохо продумывает имена типов, функций, не выделяет важные фрагменты кода и не пишет осмысленные комментарии.
В будущем это создаст проблемы в сопровождении не только ему, но и его команде, ведь самые важные фрагменты программы могут упускаться из виду, что приводит к большим трудностям при исправлении ошибок и добавлении функционала. Думайте наперед, выполняйте свою работу разработчика профессионально и вы обретете одобрение и уважение коллег.
#tips #good_programmers
Многие слышат о самодокументируемом коде, но зачастую его ценности не уделяется достаточного внимания, однако это очень грубая ошибка, когда разработчик пренебрегает документированием кода, плохо продумывает имена типов, функций, не выделяет важные фрагменты кода и не пишет осмысленные комментарии.
В будущем это создаст проблемы в сопровождении не только ему, но и его команде, ведь самые важные фрагменты программы могут упускаться из виду, что приводит к большим трудностям при исправлении ошибок и добавлении функционала. Думайте наперед, выполняйте свою работу разработчика профессионально и вы обретете одобрение и уважение коллег.
#tips #good_programmers
Ковбой
Ковбой - рисковый программист, который вряд ли утруждает себя долгими размышлениями о структуре кода, взаимодействии компонентов, качестве и чистоте. Для него важно - сделать всё быстро и так, чтобы работало, при этом от качества страдают его коллеги, которые вынуждены за ним подчищать. Он охотно узнаёт о новых технологиях, но не намерен их тестировать, ведь это займёт кучу времени и сил.
Как быть, если вы один из них: помните, вы способны на многое, но ваша проблема - ваша лень. Нет ничего лучше, чем чувствовать одобрение коллег и быть уверенным в том, что код, который вы пишете, станет эталоном для остальных разработчиков
Как работать с такими людьми: старайтесь избегать взаимодействия с кодом ковбоев, ведь вы замучаетесь исправлять его косяки, лучше найдите ковбою напарника, который смог бы его мотивировать на качественное выполнение задания.
#tips #programmer_type
Ковбой - рисковый программист, который вряд ли утруждает себя долгими размышлениями о структуре кода, взаимодействии компонентов, качестве и чистоте. Для него важно - сделать всё быстро и так, чтобы работало, при этом от качества страдают его коллеги, которые вынуждены за ним подчищать. Он охотно узнаёт о новых технологиях, но не намерен их тестировать, ведь это займёт кучу времени и сил.
Как быть, если вы один из них: помните, вы способны на многое, но ваша проблема - ваша лень. Нет ничего лучше, чем чувствовать одобрение коллег и быть уверенным в том, что код, который вы пишете, станет эталоном для остальных разработчиков
Как работать с такими людьми: старайтесь избегать взаимодействия с кодом ковбоев, ведь вы замучаетесь исправлять его косяки, лучше найдите ковбою напарника, который смог бы его мотивировать на качественное выполнение задания.
#tips #programmer_type
От чего страдает оптимальность кода
Чтобы улучшить свой код, нужно знать, отчего он может работать медленно, неоправданно расти в размере или иным образом терять качество.
Основные проблемы, которые могут приводить к снижению оптимальности:
❶ Сложность: чем больше работы должен сделать код, тем медленнее он будет выполняться
❷ Повторение: сохраняйте результаты сложных вычислений в буфере, т.к. при каждом повторно выполненном вычислении вы теряете эффективность
❸ Плохой проект: плохое проектирование приводит к плохому коду. Связанные блоки размещайте как можно ближе
❹ Ввод/вывод: старайтесь избегать блокирования выполнения программы в ожидании ввода или вывода данных.
Это далеко не весь список проблем, но он даст представление о том, на что нужно будет обратить внимание в первую очередь, ведь настоящие недоработки кроются в деталях.
#tips #optimisation
Чтобы улучшить свой код, нужно знать, отчего он может работать медленно, неоправданно расти в размере или иным образом терять качество.
Основные проблемы, которые могут приводить к снижению оптимальности:
❶ Сложность: чем больше работы должен сделать код, тем медленнее он будет выполняться
❷ Повторение: сохраняйте результаты сложных вычислений в буфере, т.к. при каждом повторно выполненном вычислении вы теряете эффективность
❸ Плохой проект: плохое проектирование приводит к плохому коду. Связанные блоки размещайте как можно ближе
❹ Ввод/вывод: старайтесь избегать блокирования выполнения программы в ожидании ввода или вывода данных.
Это далеко не весь список проблем, но он даст представление о том, на что нужно будет обратить внимание в первую очередь, ведь настоящие недоработки кроются в деталях.
#tips #optimisation
Жажда скорости
Высокая эффективность кода не столь важна, как некоторым кажется. Да, действительно, часто приходится исправлять явные дыры в производительности, но в целом нужно активно избегать проведения оптимизации.
Намного полезнее на этапе формулирования требований к ПО определить уровень производительности и на каждом этапе разработки проверять, удовлетворяет ли продукт заданным параметрам.
В погоне за скоростью мы теряем легкость чтения кода, сложность сопровождения и расширения также растет, поэтому к вопросам оптимизации нужно всегда подходить аккуратно и со знанием дела.
#tips #bad_programmers
Высокая эффективность кода не столь важна, как некоторым кажется. Да, действительно, часто приходится исправлять явные дыры в производительности, но в целом нужно активно избегать проведения оптимизации.
Намного полезнее на этапе формулирования требований к ПО определить уровень производительности и на каждом этапе разработки проверять, удовлетворяет ли продукт заданным параметрам.
В погоне за скоростью мы теряем легкость чтения кода, сложность сопровождения и расширения также растет, поэтому к вопросам оптимизации нужно всегда подходить аккуратно и со знанием дела.
#tips #bad_programmers
Отладчик
В каждой IDE встроен свой отладчик, умение им пользоваться сэкономит вам массу времени, которое вы потратили бы впустую на выяснение причин неверного поведения программы.
С помощью отладчика вы сможете проследить ветви выполнения программы, вмешаться в выполнение, получить текущие значения переменных, это на порядок эффективнее использования операторов printf. Используйте отладчик, чтобы быть уверенными в том, что ваш код работает правильно.
#tips #debugger
В каждой IDE встроен свой отладчик, умение им пользоваться сэкономит вам массу времени, которое вы потратили бы впустую на выяснение причин неверного поведения программы.
С помощью отладчика вы сможете проследить ветви выполнения программы, вмешаться в выполнение, получить текущие значения переменных, это на порядок эффективнее использования операторов printf. Используйте отладчик, чтобы быть уверенными в том, что ваш код работает правильно.
#tips #debugger
Важность программной архитектуры
Программная архитектура имеет далеко идущие последствия, она накладывает отпечаток на технологию, от архитектуры зависит, как будет развиваться код и как команды разработчиков станут совместно расширять его. Трехуровневая архитектурная модель приведет к формированию трех команд разработчиков, каждая из которых будет работать над своей частью задачи.
Плохая архитектура не просто создает неудобства – она может подорвать ваше материальное благополучие. Дело нешуточное. От архитектуры зависит то, насколько интересно будет работать с проектом, поэтому обязательно продумывайте то, что должна архитектура поддерживать и как компоненты приложения будут взаимодействовать.
#tips #architecture
Программная архитектура имеет далеко идущие последствия, она накладывает отпечаток на технологию, от архитектуры зависит, как будет развиваться код и как команды разработчиков станут совместно расширять его. Трехуровневая архитектурная модель приведет к формированию трех команд разработчиков, каждая из которых будет работать над своей частью задачи.
Плохая архитектура не просто создает неудобства – она может подорвать ваше материальное благополучие. Дело нешуточное. От архитектуры зависит то, насколько интересно будет работать с проектом, поэтому обязательно продумывайте то, что должна архитектура поддерживать и как компоненты приложения будут взаимодействовать.
#tips #architecture
Полная отдача в решении проблем
Когда опытный программист сталкивается с трудностью, он не паникует, если решение проблемы не удается найти в ближайшие несколько часов. Эта проблема начинает полностью захватывать его разум, но он понимает, что в одиночку ему не справиться.
Пригласив коллег помочь найти проблему в коде, он тем самым показывает свою заинтересованность и неравнодушие к судьбе проекта, хотя многие начинающие разработчики могут посчитать это отсутствием компетенции. Свежая голова напарника даст толчок в новом направлении, что в итоге может привести к решению.
Просите коллег о помощи, когда вы встречаетесь с трудностями, так вы действительно сможете не только избавиться от багов, но и наладить отношения в коллективе.
#tips #good_programmers
Когда опытный программист сталкивается с трудностью, он не паникует, если решение проблемы не удается найти в ближайшие несколько часов. Эта проблема начинает полностью захватывать его разум, но он понимает, что в одиночку ему не справиться.
Пригласив коллег помочь найти проблему в коде, он тем самым показывает свою заинтересованность и неравнодушие к судьбе проекта, хотя многие начинающие разработчики могут посчитать это отсутствием компетенции. Свежая голова напарника даст толчок в новом направлении, что в итоге может привести к решению.
Просите коллег о помощи, когда вы встречаетесь с трудностями, так вы действительно сможете не только избавиться от багов, но и наладить отношения в коллективе.
#tips #good_programmers
Используйте Композицию вместо Наследования
Языки программирования позволяют строить различного рода структуры и иерархии классов для того, чтобы воплотить работу некой системы, однако из всей совокупности методов существуют те, которые использовать предпочтительнее.
Для того чтобы не распространять ненужных зависимостей в иерархии классов, используйте Композицию, если вы планируете расширять свой код и добавлять в него функционал, таким образом вы сделаете его гибче и избавите его от ненужной шелухи, вызванной Наследованием. В статье на конкретном примере рассматриваются проблемы, которые может породить Наследование в неумелых руках
Подробнее
#tips #programming
Языки программирования позволяют строить различного рода структуры и иерархии классов для того, чтобы воплотить работу некой системы, однако из всей совокупности методов существуют те, которые использовать предпочтительнее.
Для того чтобы не распространять ненужных зависимостей в иерархии классов, используйте Композицию, если вы планируете расширять свой код и добавлять в него функционал, таким образом вы сделаете его гибче и избавите его от ненужной шелухи, вызванной Наследованием. В статье на конкретном примере рассматриваются проблемы, которые может породить Наследование в неумелых руках
Подробнее
#tips #programming
Плановик
Плановик столько времени тратит на обдумывание работы, что проект завершится раньше, чем он что-нибудь напишет. Озабоченный своей подготовкой, он много читает и изучает. Плановик знает все о технологиях разработки, но плохо справляется со строками и доведением чего-либо до конца, хотя код Плановика получается очень грамотным.
Как быть, если вы один из них: сконцентрируйтесь на прототипах проекта, привлеките инкрементную разработку, постарайтесь соблюдать более правильные пропорции между планированием и реализацией.
Как работать с такими людьми: избегайте совещаний с Плановиком, чтобы не потратить час на повестку дня, но всячески давайте ему понять, что его задача очень ценна, так он почувствует себя важной частью команды и будет мотивирован воплощать свои планы.
#tips #programmer_type
Плановик столько времени тратит на обдумывание работы, что проект завершится раньше, чем он что-нибудь напишет. Озабоченный своей подготовкой, он много читает и изучает. Плановик знает все о технологиях разработки, но плохо справляется со строками и доведением чего-либо до конца, хотя код Плановика получается очень грамотным.
Как быть, если вы один из них: сконцентрируйтесь на прототипах проекта, привлеките инкрементную разработку, постарайтесь соблюдать более правильные пропорции между планированием и реализацией.
Как работать с такими людьми: избегайте совещаний с Плановиком, чтобы не потратить час на повестку дня, но всячески давайте ему понять, что его задача очень ценна, так он почувствует себя важной частью команды и будет мотивирован воплощать свои планы.
#tips #programmer_type
Ветеран
Программист старой закалки. Можете послушать его рассказы о старых добрых временах, когда он использовал перфокарты, а памяти машин не хватало, чтобы сложить два целых числа.
Он все уже видел, на все знает ответы и не собирается изучать новомодные штучки. Он вам скажет, что ничего нового и нет - лишь старые идеи в другой упаковке. Ветеран не любит дураков. Он несколько сварлив, и его легко привести в раздражение.
Как быть, если вы один из них: не будьте категоричными к молодым, ведь когда-то вы были таким же увлеченным программистом с кучей свежих идей.
Как работать с такими людьми: не спорьте с Ветераном по пустякам, оказывайте ему уважение, но относитесь как коллеге, а не как к божеству.
#tips #programmer_type
Программист старой закалки. Можете послушать его рассказы о старых добрых временах, когда он использовал перфокарты, а памяти машин не хватало, чтобы сложить два целых числа.
Он все уже видел, на все знает ответы и не собирается изучать новомодные штучки. Он вам скажет, что ничего нового и нет - лишь старые идеи в другой упаковке. Ветеран не любит дураков. Он несколько сварлив, и его легко привести в раздражение.
Как быть, если вы один из них: не будьте категоричными к молодым, ведь когда-то вы были таким же увлеченным программистом с кучей свежих идей.
Как работать с такими людьми: не спорьте с Ветераном по пустякам, оказывайте ему уважение, но относитесь как коллеге, а не как к божеству.
#tips #programmer_type