Щоб не забути

Есть три буддийских способа смотреть телевизор. В сущности, это один и тот же способ, но на разных стадиях тренировки он выглядит по-разному. Сначала ты смотришь телевизор с выключенным звуком. Примерно полчаса в день, свои любимые передачи. Когда возникает мысль, что по телевизору говорят что-то важное и интересное, ты осознаешь ее в момент появления и тем самым нейтрализуешь. Сперва ты будешь срываться и включать звук, но постепенно привыкнешь. Главное, чтобы не возникало чувства вины, когда не можешь удержаться. Сначала так со всеми бывает, даже с ламами. Потом ты начинаешь смотреть телевизор с включенным звуком, но отключенным изображением. И наконец, начинаешь смотреть выключенный телевизор. Это, собственно, главная техника, а первые две — подготовительные. Смотришь все программы новостей, но телевизор не включаешь. Очень важно, чтобы при этом была прямая спина, а руки лучше всего складывать на животе — правая ладонь снизу, левая сверху. Это для мужчин, а для женщин наоборот. И ни на секунду не отвлекаться. Если так смотреть телевизор десять лет подряд хотя бы по часу в день, можно понять природу телевидения. Да и всего остального тоже.

Виктор Пелевин, Generation П.

ZCE і разноє.

Вчора здав теста на Zend Certified Engineer. Півтора тижня назад купив машину. Певно не скоро знову тут напишу. Давно не було корцінок, а ця зараз частенько попадається.

Такі діла

Командна розробка великого проекту. Продовження

Це продовження попередньої записки.

Організації такої схеми розробки сильно допомагає git або будь-яка інша децентралізована система контролю версій. Хоча технічні деталі стосуватимуться git, їх, мабуть, можна використати з іншою системою такою як mercurial чи bazaar. Тут можна похоліварити, я б почитав аргументовані коментарі щодо кожної з систем. Окрім власне самої системи контролю версій нам потрібно буде якийсь інтерфейс для відправки коду для перегляду, власне самого перегляду і обговорення. Користуючись git ви маєте надзвичайно крутий інструмент на платній основі — github. Якщо ж hosted-версія такого програмного забезпечення не підходить для бізнесу (з різних міркувань: безпеки, оплати, інші), тоді вам в пригоді стануть інші подібні системи: gitorious, gitlab (огляд на хабрахабрі), luna-tool (стаття на хабрахабрі). Варто відзначити, що останні дві системи доволі нові, відтак можуть не мати достатнього функціональності для тієї схеми, що я тут розповідаю і я їх не пробував особисто, проте вони швидко розвиваються і мають корені з недалекого східного зарубіжжя. В цьому записі я зупинюсь на gitorious, так як схема роботи побудована з використанням цієї системи.

Read more…

Командна розробка великого проекту

Мабуть всі програмісти, які використовують гіт в тій чи іншій мірі стикались з успішною моделлю розгалуження в Git (чи з перекладом на хабрі). Дана схема чудесно працює в «гомогенному середовищі програмістів», де команда приблизно має рівний досвід, бачення коду. Що я пояснювати буду, програмісти приблизно одного рівня. Також цей підхід чудового підходить продуктовим компаніям, які добре знають роудмапу свого проекта заздалегідь і можуть вести розробку згідно цього плану. Мінусами даної схеми роботи є те, що в ній не передбачено багато бюрократичних моментів, які впливають на якісну розробку програмного забезпечення, вважаючи, що продуктові компанії людські проблеми вирішують на рівні людей. Про це можна написати окрему статтю на тему чим продуктова компанія відрізняється від аутсорсингової, але зараз не про це.

Аутсорсингові компанії зазвичай мають більше бюрократичних правил (які, чесно кажучи, оправдані), що необхідно слідувати під час розробки. Від релізу до релізу потрібно робити код рев’ю, планувати спрінти, розділяти відповідальність на групи розробників всередині команди. Такий процес провокує взаємодію між людьми. Як відомо, коли проблема стосується людей то її вирішення значно складніше і менш універсальне, чим рішення, що знаходиться в технічній сфері.

Отож як гіт може допомогти нам в код рев’ю, поділ відповідальності на групи розробників і оформлення релізів? Давайте розглянемо на прикладах. Уявимо що в нас є декілька feature-команд, що займаються розробкою нового функціоналу до уявного продукту і декілька maintenance-команд, що займаються підтримкою існуючої системи і мінорними покращеннями до продукту. На схемі 1 нижче зображено все що ми тут науявляли.

Схема 1

Звісно кожна команда створює свої гілки в основному репозиторії, там собі девелопає успішно, обмінюється комітами, але все-ж залишається гетерогенною групою програмістів. Тому перше, що варто зробити це надати кожній групі свого публічного репозиторію. Мабуть група має якогось лідера (team-lead, старший інженер). Ось його публічний репозиторій може виступати в якості групового публічного репозиторію. Відповідно ми отримуємо групи двох рівнів: старші інженери і девелопери.

Старші інтежени рулять командним репозиторієм і комітяться туди безпосередньо, а девелопери ролять клони і девелопають в своїх клонах, відправляючи мердж реквести.

Відповідно ми наближаємось до схеми диктаторів-лейтенантів, яка характерна для розробки ядра Лінукса, тільки без диктатора. Хоча позицію диктатора може займати скраміський реліз менеджер. ВІн власне буде відповідальний за оформлення релізу, вибиратиме стабільні бранчі і включатиме їх в реліз.

Якщо вас ця тема зацікавила ,залиште будь ласка відгука і я розгорну її детальніше. Маю досвід впроваждення такої схеми в проект з 15+ девелоперами в 4 командах. Такі діла.

 

Upgrade

Нарешті вийшов драйвер для amd. Качаєм.

Go back to top