Показаны сообщения с ярлыком теория разработки. Показать все сообщения
Показаны сообщения с ярлыком теория разработки. Показать все сообщения

воскресенье, 5 июня 2016 г.

Что такое DevOps?

DevOps - термин обозначает группу идей, которые в большинстве своем не новы. Эти идеи уже повсеместно проникли и быстро распространились в техническом сообществе. Как и для любого нового и популярного термина, люди часто испытывают трудности и противоречивые чувства, когда пытаются понять что же это. Сейчас попробуем определить, чем DevOps может быть нам полезен.

DevOps схема

Определение DevOps

DevOps - новое понятие, являющееся объединением двух последних значимых трендов. Первый, так называемый "Agile в системном администрировании". Он поощряет применение практик Agile и Lean в области администрирования. Второй тренд - очень широкое для понимания значение, которое включает в себя взаимодействие между командой администрирования и программистами на всех стадиях разработки - от создания до обслуживания.
Другое определения дал Jez Hubmle :

DevOps - группа практик для изучения таких предметов, как создания, выполнения и администрирования быстроизменяющихся масштабируемых систем.

вторник, 23 февраля 2016 г.

Коротко: Экстремальное программирование

экстремальное программирование

Вступление.

После прочтения книги Кент Бек "Экстремальное программирование" подытожу и напишу основные тезисы об этой методологии разработки. Принципы лежащие в основе методологии покажутся неновыми, так и есть, она не несет никаких волшебных пилюль. Основная идея заключается в грамотном использовании и комбинировании устоявшихся и проверенных приемов. Автор книги предлагает использовать эти методы доходя до крайностей, из за чего методология и обязана такому названию

Основные моменты.

Команда не должна быть слишком большая, не более 10 человек. Увеличение численности происходит постепенно, по мере надобности. На первых порах, врятли нужен полный состав команды, даже если бюджет проекта это позволяет сделать. Необходимо, позаботиться о внутренней атмосфере. Наладьте доброжелательные и искренние отношения, чтобы участники не боялись высказывать свое мнение. Нужно так же обратить внимание на расположении столов и стульев, это, как не странно, тоже немаловажная деталь. Члены команды, для плодотворного взаимодействия находятся рядом друг с другом, в одном помещении. Столы приспособлены для работы двух человек.

четверг, 11 февраля 2016 г.

10 заповедей Zen программиста

  1. Внимательность.

    Если вы работаете над решением задачи, делаете её хорошо,  на столько насколько вы можете. Не переключайтесь на другие вещи. Работайте только над чем то одним, в один момент времени. Вы не станете быстрее, если будете работать в многозадачном режиме. Если вы работаете над несколькими задачами, вы раньше устанете и сделаете больше ошибок и потратите больше времени на переключение между задачами. Это применимо к различным областям, не только к программированию.
    zen программист
    Кодо Саваки говорил: "Если вам нужен сон, спите". Не планируйте процесс разработки, когда вы пытаетесь уснуть. Если вы пишете код, пишите. Не отвлекайтесь - пишите код. Если вы устали на столько, что не можете программировать - спите.
  2. Держите разум чистым.

    Перед тем как вы приступите к работе, очистите голову от лишних мыслей. Оставьте в стороне посторонние мысли, что занимали вас. Если у вас проблемы, не позволяйте им влиять на вас. Часто, эти проблемы решаемы. Редко встречаются те, от которых тяжело на столько, что нельзя работать. Когда вы погружаетесь в работу, внешний мир отойдет на второй план. Перестаньте читать email рассылку.Там нет ничего важного - вы сможете это сделать позже. Выключите программы, которые наполняют мозг дерьмом: закройте twitter, facebook, почтовый клиент. Переведите телефон в беззвучный режим и перестаньте держать его в руках, пусть он лежит в кармане. Вы скажите, что это похоже с первым советом, отчасти, но они отличаются одним ограничением: “Не используйте устройства перед работой и во время обеда.” Они связывают вас с внешним миром и доставляют вам новые проблемы или информацию, которая требуют внимания.
    Держите разум в состоянии, похожем на то, когда вы только что проснулись. Если не получается, то спорт может в этом помочь (я бегаю на длительные дистанции). Если вы чувствуете себя бодрым и свежим, вы работаете лучше, вы можете работать на пределе. Закончить рабочий день с головой в которой полный беспорядок, сомнительное удовольствие. Twitter и Компания потребляют много энергии. Не тратьте на них время, может только минуту, не более.

четверг, 17 декабря 2015 г.

Коротко: Методология SCRUM

Вдохновленный прочтением "Scrum. Революционный метод управления проектами", хочется немного подвести итоги и написать об основных моментах методологии scrum.

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

Проектирование -> Дизайн пользовательского интерфейса -> Написание кода -> Тестирование.


Чем же плох такой подход?

понедельник, 7 декабря 2015 г.

Принципы GRASP

Сегодня поговорим о более абстрактных вещам, а именно о GRASP.
Что же это такое и для чего это нужно? Давайте попробуем разобраться.

GRASP (General Responsibility Assignment Software Principles) - общие принципы распределения обязанностей, иногда их называют GRASP шаблоны.
Название "шаблоны", мне не нравятся и кажется,что "принципы" будет более подходящее определение. Т.к. GRASP не несет в себе каких то строгих структур, это скорее набор неких правил примененимых к ООП, принципов проверенных временем. В первые, они были упомянуты в книге  Крейга Лармана "Применение UML и шаблонов проектирования". GRASP является полезным иструментом разработчика в проектировании и создании программного обеспечения.

Всего принципов девять, название умышленно не буду переводить: Controller, Creator, Indirection, Information Expert, High Cohesion, Low Coupling, Polymorphism, Protected Variations и Pure Fabrication.