Agile - гибкая методология разработки
❶ Agile как методология не о том, как идти быстро, а о том, чтобы знать, куда идти.
❷ Agile не повышает продуктивность, однако повышает управляемость проектов.
❸ Agile не гарантирует выполнение сроков, но разрушает надежду на то, чего хотелось бы достичь, но достичь невозможно.
#software #agile
❶ Agile как методология не о том, как идти быстро, а о том, чтобы знать, куда идти.
❷ Agile не повышает продуктивность, однако повышает управляемость проектов.
❸ Agile не гарантирует выполнение сроков, но разрушает надежду на то, чего хотелось бы достичь, но достичь невозможно.
#software #agile
Шаблоны проектирования - Наблюдатель
Вероятно, наиболее популярный поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. Поможем разобраться в сути паттерна и рассмотрим практическое применение. Чтобы оптимально использовать данный паттерн, необходимо “копнуть поглубже” и понять его особенности.
Читать статью
#designpatterns #observer
Вероятно, наиболее популярный поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. Поможем разобраться в сути паттерна и рассмотрим практическое применение. Чтобы оптимально использовать данный паттерн, необходимо “копнуть поглубже” и понять его особенности.
Читать статью
#designpatterns #observer
Основные советы по использованию указателей
Несмотря на то что в некоторых языках проблемы, связанные с указателями, минимизированы, для успешной работы с ними требуется, во-первых, изначально не делать в них ошибок. Проблемы с указателями так сложно обнаружить, что дополнительные меры вполне оправданны. Во-вторых, выявляйте ошибки в указателях как можно быстрее после того, как они закодированы. Вот как можно добиться этих ключевых целей:
❶ Изолируйте операции с указателями в методах или классах;
❷ Выполняйте объявление и определение указателей одновременно;
❸ Удаляйте указатели в той же области действия, где они были созданы;
❹ Проверяйте переменную, на которую ссылается указатель, перед ее использованием;
❺ Упрощайте сложные выражения с указателями;
❻ Нарисуйте картинку;
❼ Уничтожайте мусор.
При работе с указателями нужно быть предельно осторожными и продумывать каждую инициализацию, а также следить за обращениями к памяти. Здесь, как и везде, решает опыт и тщательный расчет.
#tips #pointers
Несмотря на то что в некоторых языках проблемы, связанные с указателями, минимизированы, для успешной работы с ними требуется, во-первых, изначально не делать в них ошибок. Проблемы с указателями так сложно обнаружить, что дополнительные меры вполне оправданны. Во-вторых, выявляйте ошибки в указателях как можно быстрее после того, как они закодированы. Вот как можно добиться этих ключевых целей:
❶ Изолируйте операции с указателями в методах или классах;
❷ Выполняйте объявление и определение указателей одновременно;
❸ Удаляйте указатели в той же области действия, где они были созданы;
❹ Проверяйте переменную, на которую ссылается указатель, перед ее использованием;
❺ Упрощайте сложные выражения с указателями;
❻ Нарисуйте картинку;
❼ Уничтожайте мусор.
При работе с указателями нужно быть предельно осторожными и продумывать каждую инициализацию, а также следить за обращениями к памяти. Здесь, как и везде, решает опыт и тщательный расчет.
#tips #pointers
C# 8.0. Новые возможности.
Релиз .NET Core 3.0 привнес много интересных особенностей и, как часть нового релиза, вышла новая версия C# - 8.0.
Разработчиков ждут:
❶ Обнуляемые ссылочные типы, устраняющие проблемы с постоянными NullReferenceException.
❷ Асинхронные перечислители, помогающие в реализации шаблонов Производитель/Потребитель
❸ Новый синтаксис оператора Switch
❹ Использование деклараций для лаконичности кода
❺ Улучшения индексации массивов и коллекций
Данные нововведения позволят значительно упростить работу с языковыми конструкциями, избежать ошибок, а также повысить эффективность работы.
Читать статью
#programming #csharp
Релиз .NET Core 3.0 привнес много интересных особенностей и, как часть нового релиза, вышла новая версия C# - 8.0.
Разработчиков ждут:
❶ Обнуляемые ссылочные типы, устраняющие проблемы с постоянными NullReferenceException.
❷ Асинхронные перечислители, помогающие в реализации шаблонов Производитель/Потребитель
❸ Новый синтаксис оператора Switch
❹ Использование деклараций для лаконичности кода
❺ Улучшения индексации массивов и коллекций
Данные нововведения позволят значительно упростить работу с языковыми конструкциями, избежать ошибок, а также повысить эффективность работы.
Читать статью
#programming #csharp
Аргументы-селекторы
Ничто так не раздражает, как висящий в конце вызова функции аргумент false. Зачем он здесь? Что изменится, если этот аргумент будет равен true? Смысл селектора трудно запомнить, но дело не только в этом — селектор указывает на объединение нескольких функций в одну.
Каждый раз, когда вы встречаете вызов calculateWeeklyPay(false), вам приходится вспоминать, что он означает.
Для упрощения кода и повышения читабельности старайтесь разбивать методы со сложной логикой на группу более простых методов, выполняющих элементарные операции, и не используйте селекторы для объединения методов в один.
#tips #argument_selectors
Ничто так не раздражает, как висящий в конце вызова функции аргумент false. Зачем он здесь? Что изменится, если этот аргумент будет равен true? Смысл селектора трудно запомнить, но дело не только в этом — селектор указывает на объединение нескольких функций в одну.
Каждый раз, когда вы встречаете вызов calculateWeeklyPay(false), вам приходится вспоминать, что он означает.
Для упрощения кода и повышения читабельности старайтесь разбивать методы со сложной логикой на группу более простых методов, выполняющих элементарные операции, и не используйте селекторы для объединения методов в один.
#tips #argument_selectors
Тренды 2020 в программировании
2020 уже на носу. 2020 — это год, который описывался в научной фантастике и вот-вот он уже постучит нам в дверь. Конечно, это все лишь догадки, но они подкреплены глубоким анализом прошлых лет.
Что же нас ждет в будущем 2020:
❶ Rust станет мейнстримным
❷ Прольется свет на Web Assembly
❸ React продолжит свой рост популярности
❹ JavaScript будет на коне
❺ Новый подход к разработке - прогрессивные веб-приложения.
Читать статью
Итак, остается лишь с замиранием сердца ждать, когда все планы осуществляться и работать над трендами будущих лет.
#programming #trends
2020 уже на носу. 2020 — это год, который описывался в научной фантастике и вот-вот он уже постучит нам в дверь. Конечно, это все лишь догадки, но они подкреплены глубоким анализом прошлых лет.
Что же нас ждет в будущем 2020:
❶ Rust станет мейнстримным
❷ Прольется свет на Web Assembly
❸ React продолжит свой рост популярности
❹ JavaScript будет на коне
❺ Новый подход к разработке - прогрессивные веб-приложения.
Читать статью
Итак, остается лишь с замиранием сердца ждать, когда все планы осуществляться и работать над трендами будущих лет.
#programming #trends
Непонятные намерения
Код должен быть как можно более выразительным. Слишком длинные выражения, венгерская запись, «волшебные числа» — все это скрывает намерения автора.
Такая запись выглядит компактной и плотной, но разбираться в ней — сущее мучение. Не жалейте времени на то, чтобы сделать намерения своего кода максимально прозрачными для читателей.
#tips #intentions
Код должен быть как можно более выразительным. Слишком длинные выражения, венгерская запись, «волшебные числа» — все это скрывает намерения автора.
Такая запись выглядит компактной и плотной, но разбираться в ней — сущее мучение. Не жалейте времени на то, чтобы сделать намерения своего кода максимально прозрачными для читателей.
#tips #intentions
5 программ, написание которых улучшит ваш навык программирования
В небольшой статье мы собрали 5 интереснейших идей проектов для реализации. Несмотря на простоту, написание их позволит вам прочувствовать работу с разными инструментами языка JavaScript, при этом освоить популярные технологии и методики программирования.
Читать статью
#programming #improvement
В небольшой статье мы собрали 5 интереснейших идей проектов для реализации. Несмотря на простоту, написание их позволит вам прочувствовать работу с разными инструментами языка JavaScript, при этом освоить популярные технологии и методики программирования.
Читать статью
#programming #improvement
Единственность цели каждой переменной
Используйте переменную только с одной целью. Иногда есть соблазн вызвать одну переменную в двух разных местах для решения двух разных задач. Использование "временной" переменной - очень плохая затея.
Вопрос: какие отношения связывают temp в первых строках кода и temp в последних? Ответ: никакие. Из-за использования в обоих случаях одной переменной создается впечатление, что две задачи связаны, хотя на самом деле это не так. Создавайте уникальные переменные для каждой цели, чтобы сделать код более читабельным и понятным.
#tips #variables
Используйте переменную только с одной целью. Иногда есть соблазн вызвать одну переменную в двух разных местах для решения двух разных задач. Использование "временной" переменной - очень плохая затея.
Вопрос: какие отношения связывают temp в первых строках кода и temp в последних? Ответ: никакие. Из-за использования в обоих случаях одной переменной создается впечатление, что две задачи связаны, хотя на самом деле это не так. Создавайте уникальные переменные для каждой цели, чтобы сделать код более читабельным и понятным.
#tips #variables
Хорошие разработчики крайне находчивы, но необязательно умны.
Действительно ли так важен интеллект и сообразительность в работе программиста? Думаете, что программистом нужно родиться? Можем с уверенностью сказать, что это неправда.
Хорошие разработчики бросают вызов сами себе и никогда не боятся просить о помощи, задавать вопросы коллегам. Для них решение поставленной задачи - дело первостепенной важности. К ее решению они подходят ответственно, что в конечном итоге делает из них незаменимых разработчиков и очень хороших программистов.
Если то, чем вы занимаетесь, не заставляет вас преодолевать трудности, то вы не развиваетесь в этом.
Читать статью
#programming #improvement
Действительно ли так важен интеллект и сообразительность в работе программиста? Думаете, что программистом нужно родиться? Можем с уверенностью сказать, что это неправда.
Хорошие разработчики бросают вызов сами себе и никогда не боятся просить о помощи, задавать вопросы коллегам. Для них решение поставленной задачи - дело первостепенной важности. К ее решению они подходят ответственно, что в конечном итоге делает из них незаменимых разработчиков и очень хороших программистов.
Если то, чем вы занимаетесь, не заставляет вас преодолевать трудности, то вы не развиваетесь в этом.
Читать статью
#programming #improvement
Жив ли PHP?
Как часто мы негодуем насчет PHP, подшучиваем над теми, кто разрабатывает на нем, однако у PHP все круто и он не собирается уходить в небытие. PHP активно разрабатывается, в нем есть мощные фреймворки, такие как Laravel и Symfony.
PHP тесно связан с WordPress, а большинство хостинговых компаний продолжают поддерживать WordPress в качестве основной CMS. Хорошо это или плохо, увидим, но, как минимум, этот фактор точно не даст PHP умереть.
Читать статью
#programming #php
Как часто мы негодуем насчет PHP, подшучиваем над теми, кто разрабатывает на нем, однако у PHP все круто и он не собирается уходить в небытие. PHP активно разрабатывается, в нем есть мощные фреймворки, такие как Laravel и Symfony.
PHP тесно связан с WordPress, а большинство хостинговых компаний продолжают поддерживать WordPress в качестве основной CMS. Хорошо это или плохо, увидим, но, как минимум, этот фактор точно не даст PHP умереть.
Читать статью
#programming #php
Основные вопросы применения табличных методов
При определенных обстоятельствах табличный код проще, чем сложные логические выражения, легче поддается изменению и он более эффективен. При применении табличных методов перед вами стоят два основных вопроса:
❶ ЧТО хранить в таблице? Иногда результатом поиска в таблице являются данные — тогда можно хранить в таблице сами данные. Если же результатом поиска является действие, можно хранить ссылку на метод.
❷ КАК будет выполняться поиск записей в таблице? Так, если вам нужно систематизировать данные по месяцам, то выбор ключа для таблицы месяцев очевиден. Вы можете использовать массив с индексом от 1 до 12.
Разумеется, создание большого условия if — неуклюжий способ решения этой проблемы.
#programming #table_methods
При определенных обстоятельствах табличный код проще, чем сложные логические выражения, легче поддается изменению и он более эффективен. При применении табличных методов перед вами стоят два основных вопроса:
❶ ЧТО хранить в таблице? Иногда результатом поиска в таблице являются данные — тогда можно хранить в таблице сами данные. Если же результатом поиска является действие, можно хранить ссылку на метод.
❷ КАК будет выполняться поиск записей в таблице? Так, если вам нужно систематизировать данные по месяцам, то выбор ключа для таблицы месяцев очевиден. Вы можете использовать массив с индексом от 1 до 12.
Разумеется, создание большого условия if — неуклюжий способ решения этой проблемы.
#programming #table_methods
Четыре ошибки, которые совершал каждый программист.
На пути становления хорошим разработчиком мы обязательно проходим этапы, когда все рушится и закончить работу в срок кажется невозможным. Не опускайте руки раньше времени - вот что приведет вас к цели.
Стив Джобс как-то сказал: «Я убежден, что большинство успешных предпринимателей отличаются от неуспешных настойчивостью». И да, это как никогда применимо к программистам, ведь от сложности поставленных задач порой кружится голова. Проявите твердость характера и выполните поставленную задачу. Поверьте, результат не заставит себя ждать, а чувство удовлетворения наполнит вашу жизнь позитивом.
Читать статью
#programming #improvement
На пути становления хорошим разработчиком мы обязательно проходим этапы, когда все рушится и закончить работу в срок кажется невозможным. Не опускайте руки раньше времени - вот что приведет вас к цели.
Стив Джобс как-то сказал: «Я убежден, что большинство успешных предпринимателей отличаются от неуспешных настойчивостью». И да, это как никогда применимо к программистам, ведь от сложности поставленных задач порой кружится голова. Проявите твердость характера и выполните поставленную задачу. Поверьте, результат не заставит себя ждать, а чувство удовлетворения наполнит вашу жизнь позитивом.
Читать статью
#programming #improvement
Снижение стоимости операций
Под снижением стоимости (strength reduction) понимают замену дорогой операции на более дешевую, например, умножения на сложение.
Иногда внутри цикла выполняется умножение индекса на какие-то другие значения. Сложение обычно выполняется быстрее, чем умножение, и, если вы можете вычислить то же число, заменив умножение на прибавление значения при каждой итерации цикла, это скорее всего приведет к ускорению выполнения кода.
В данном примере индекс цикла был единственной изменяющейся частью выражения, поэтому мы и смогли сделать выражение более эффективным.
#programming #tips
Под снижением стоимости (strength reduction) понимают замену дорогой операции на более дешевую, например, умножения на сложение.
Иногда внутри цикла выполняется умножение индекса на какие-то другие значения. Сложение обычно выполняется быстрее, чем умножение, и, если вы можете вычислить то же число, заменив умножение на прибавление значения при каждой итерации цикла, это скорее всего приведет к ускорению выполнения кода.
В данном примере индекс цикла был единственной изменяющейся частью выражения, поэтому мы и смогли сделать выражение более эффективным.
#programming #tips
7 книг для программистов
Профессионализм в программировании достигается тяжёлыми усилиями. Если вы выучили пару языков программирования и думаете, что это конец, то вы ошибаетесь. Это только начало. Теперь у вас есть инструмент, но нужно еще научиться его правильно использовать.
В данной статье мы расскажем о книгах, благодаря которым вы сможете стать программистом-экспертом.
Читать статью
#programming #books
Профессионализм в программировании достигается тяжёлыми усилиями. Если вы выучили пару языков программирования и думаете, что это конец, то вы ошибаетесь. Это только начало. Теперь у вас есть инструмент, но нужно еще научиться его правильно использовать.
В данной статье мы расскажем о книгах, благодаря которым вы сможете стать программистом-экспертом.
Читать статью
#programming #books
Подготовительный код
Код с подготовкой к вызову метода должен вызывать у вас подозрение. Натолкнувшись на код, подготавливающий программу к вызову метода или восстанавливающий ее боеспособность после вызова, спросите себя, формирует ли интерфейс метода адекватную абстракцию.
Так, если у вас обычно есть объект WithdrawalTransaction, но в метод ProcessWithdrawal передаются только несколько значений объекта, вам следует подумать о рефакторинге интерфейса метода, чтобы он принимал объект WithdrawalTransaction, а не его отдельные поля
#tips #preparation_code
Код с подготовкой к вызову метода должен вызывать у вас подозрение. Натолкнувшись на код, подготавливающий программу к вызову метода или восстанавливающий ее боеспособность после вызова, спросите себя, формирует ли интерфейс метода адекватную абстракцию.
Так, если у вас обычно есть объект WithdrawalTransaction, но в метод ProcessWithdrawal передаются только несколько значений объекта, вам следует подумать о рефакторинге интерфейса метода, чтобы он принимал объект WithdrawalTransaction, а не его отдельные поля
#tips #preparation_code