Я звичний фахівець, і я виявив, що мені підходить, але, правда, мої повідомлення про вчинення майже завжди схожі,
Age: 9 mins [*] Working on implementing and testing PaintSystem.
Age: 17 mins [*] Working on implementing and testing PaintSystem.
Age: 37 mins [*] Working on implementing and testing PaintSystem.
Age: 52 mins [*] Working on implementing and testing PaintSystem.
Тому я не можу точно сказати, що внесення таких частих і звичних зобов’язань до моєї гілки (mercurial) саме заохочує найдокладніші журнали фіксації. Іноді я навіть вчиню код на півдорозі, якщо, скажімо, моя дружина попросить мене вийти на вечерю, після чого я просто поспішаю скопіювати і скористатись попереднім повідомленням "Робота над [...]".
Мої шаблони журналів фіксації зазвичай такі, "Working on [...] Working on [...] Working [...] Completed [...] Started working on [...] Working on [...] Completed [...] Started working on [...]"
З іншого боку, це врятувало мою недопалку. Іноді я стикаюся з кращим випадком, якого я не очікував і не перевіряв, і тоді часті зобов'язання допомагають мені зрозуміти, де саме я ввів помилку.
Тож я не знаю про найкращі звички, і я, звичайно, не є прислухатися до того, наскільки ідеальні звички здійснювати лісозаготівлю, але я, безумовно, можу сказати, що вчинення частіших дій напевно може допомогти, коли потрібно здійснити регресію.
Чи повинна кожна зміна одного рядка взяти на себе зобов’язання?
Я вносив зміни в рядку раніше, але, як правило, хитрі, і, можливо, мені не вистачало часу. Мої зобов'язання не завжди нагадують досконалі та завершені одиниці роботи чи зміни. Як говорилося, іноді вони є лише результатом того, що моя дружина просить мене несподівано вийти на вечерю.
TBH, багато моїх зобов’язань, які слідують за такою "Working on [...]"
схемою журналу, - це не моделювання когерентних одиниць змін (чому я часто не можу придумати повідомлення краще "Working on [...]"
), а лише результат того, що я передихав, як зробити собі чашку кави. "Completed [...]"
Повідомлення вказує на кінець цієї одиниці роботи, і я часто пишу набагато більш докладне повідомлення разом з першим "Started working on [...]"
повідомленнями типу , коли я просто почати працювати над чим - то. Якщо ви в середньому здійснюєте так, як раз на 15 хвилин, то повідомлення "Робота над [...]" більше нагадують користувачів, що ставляться до того, що хтось може здійснити за один об'ємний комітет з більш детальним повідомленням.
Чи потрібно зробити я перед будь-яким тестом (наприклад, принаймні для синтаксису / компіляції помилок, а потім доведеться повністю скасувати його, оскільки ідея не спрацювала або повідомлення є брехнею)?
Я просто йду вперед і виконую це перед тим, як іноді навіть запускати тести (знову ж таки, якщо у мене була несподівана подія). Незважаючи на те, що я соло, я натискаю на сервер (лише один працює тут вдома по локальній мережі), який робить CI. Це може здатися непосильним, але не знаю, я звик спиратися на це на своїх колишніх робочих місцях. Плюс мені не хочеться турбуватися про те, щоб кожен раз вручну виконувати всі мої модулі та інтеграційні тести. Мені подобається, що це все прив’язане до просто штовхання. Якщо тест не вдасться, досить просто працювати вперед, де я регресую, виправляю помилку в останніх оборотах і продовжую продовжувати. Але це означає , що я принаймні будую код проти налагодження, перш ніж виконувати його.
Чи повинен я переконатися, що я виконую щоранку / вдень, перш ніж перестати працювати на вечерю, поки її ще свіже?
Мені подобається займатися перед тим, як вийти на вулицю і перерву між програмуванням. Я не дуже замислювався над тим, чому саме, поки не зіткнувся з цим питанням. Я гадаю, що це не дасть мені вибрати місце, де я залишився без журналу комісій, замість того, де я зупинився, що я можу відрізнятись тощо. Хм, мені потрібно повернутися до вас з цього приводу, оскільки це, можливо, теоретично не потрібно, враховуючи те, як часто я виконую. Я все ще відчуваю себе комфортніше вчиняти та натискати, перш ніж покинути комп’ютер з будь-якої причини. Дещо це може бути колишній психологічний страх, скажімо, після того, як я виїжджаю з комп’ютера, коли я виїжджаю, і коли менеджери проектів повертаються назад у дні, коли ми використовували SVN разом із дияволами, що іноді їздили тижнями, не роблячи дихання за шию і постійно нагадуючи нам перевіряти код якомога частіше, нагадуючи нам, що наш код - власність компанії. Крім того, це трохи ефективніше, особливо при натисканні, щоб мій процес CI міг почати виконувати всі тести, поки я відсутній, щоб я міг повернутися і побачити результати.
О, а іноді я трохи напиваюся після від'їзду, і зазвичай погана ідея намагатися написати складний код, будучи п'яним (хоча і не завжди; одного разу я придумав дійсно приємну систему контекстного меню після того, як мав момент еврики, будучи п'яним, але я мав як 6 пива, і це було не так складно кодувати). Якщо я спробую це зробити, принаймні я вчинив тверезо написаний код перед тим, як піти, щоб повернутися назад, замість того, щоб змішувати п’яний код з тверезим кодом, і в цей момент мій журнал фіксування може читати як, "Reverting back to code written before Jagermeister shots."
я цього не роблю дуже часто, якщо я не отримав натхнення від п’яного коду, але в тих рідкісних випадках це справді допомогло мені зробити щось, перш ніж я вийшов і напився.