Стендап Сьогодні
Що я зробив, що я хочу зробити, і що це все значить.
Повсякденні здобутки в форматі стендапу.
Детальніше в статті
Підписатись на RSS
📢
Канал в Telegram @stendap_sogodni
🦣
@stendap_sogodni@shevtsov.me в Федиверсі
10.08.2022
Особливості обробки помилок на мові Golang
🐞🔍😅 Сьогодні довелося багато попрацювати з помилками виконання на мові Go. Go - мова з яскраво вираженою авторською думкою. Отже і обробка помилок в Go зроблена цікавим і авторським чином. Ось декілька фактів про неї:
- Майже кожна нетривіальна функція повертає не тільки результат, а й помилку (мабуть, саме для цього в Go функції можуть повертати декілька значень)
- Очікується, що безпосередньо після виклику кожної такої функції буде перевірка та обробка помилки (хоча можна і проігнорувати - є лінтери, які це забороняють)
- При цьому помилки в Go мінімально типізовані. Зазвичай помилку не треба роздивлятись, а просто час перервати запланований алгоритм. (Звісно, є випадки, в яких можна перевірити, що це саме за помилка, і якось особливо відреагувати.)
- На практиці це призводить до того, що кожний написаний алгоритм враховує всі можливості помилки, а це вельми цінно.
- Є ще один різновид помилки - паніка. За механізмом, паніка є виключенням, як у інших мовах. Але за змістом вона значить, що це програміст накосячив, і вихід тепер один - виправити код. Наприклад, паніку викличе звертання до нульового покажчика. (Легкий спосіб її схопити - ігнорувати помилки.)
- Неперехоплена паніка в будь-якій з паралельних рутин призводить до повного краху програми. Настільки все серйозно.
Цю систему я то ненавиджу, то люблю. Адже вона привчає до того, що помилки виконання - неминучий аспект життя, і готуватись до них потрібно завжди.
09.08.2022
Програмування в парі
👱♂️💻👱♂️ Сьогодні я майже цілий день програмував у парі. Колись я вважав парне програмування безглуздим марнуванням часу (а може, ще й оплачуваного клієнтом). Але це буде правдою, тільки якщо припустити, що поодинці два інженери зроблять в два рази більше роботи, ніж удвох. Продуктивність програмістів - дуже абстрактна величина, тому таке твердження легко приймається на віру.
Але ж робота програміста складається не тільки з написання коду. І мета парного програмування - зовсім не написати його більше (це взагалі погана мета.)
В пару сідають, щоб:
- приймати удвох складні тактичні рішення - про архітектуру, про шлях відлагодження, про іменування...
- навчити чомусь одне одного - про проєкт, про код, про технології, про підходи...
Кращий код та сильніша команда - гідний привід деколи "помарнувати час".
08.08.2022
Люстра та важливість правильного вибору інструменту
👷🤙🪓 Сьогодні я повісив люстру-вентилятор. Особливого хисту до ремонтних робіт в мене немає, але ж шукати найманця теж не хотілось, а люстра мала бути повішена.
Інструкції до люстри були суто схематичні, до того ж іспанською мовою та ще й явно перекладені з китайської. Та такі пазли інженеру розв’язувати знайомо та приємно. Розклав частини на дивані, зрозумів приблизно що за чим йде, та й стало все ясно.
Слабким місцем виявилось свердління у стелі під анкерний болт. Ось тут я взагалі не майстр. Після десяти хвилин знущання над стелею шуруповертом зробив третину одного з двох отворів. Тобто чисто математично, за годину я б впорався - але година притискання свердла до стелі це неабиякий воркаут. І... хіба всі так довго дірки роблять?
Замість того, запитав у досвідченої людини, як правильно налаштувати шуруповерта. У розмові проміж діла виявилось, що свердла мають властивість “втомлюватись” - тупитися і міняти колір. Який збіг - в мене свердло взагалі коричневе! Сходив до крамниці за новим свердлом. Звичайним дешевим свердлом по бетону.
З новим свердлом робота зайняла менше хвилини! Воно вгризалося в стелю настільки швидко, що я не вірив своїм очам. Після цього залишок роботи пройшов впевнено та вчасно.
Занотую три висновки:
- Коли робота не ладиться, варто зупинитись і спитати себе - чи не можна щось зробити інакше? Особливо якщо це поширена та добре відома робота.
- Порада досвідченої людини деколи приносить неочікуваний і трансформуючий результат.
- Правильно обраний інструмент може зробити діло простіше в рази і навіть на порядки.

