Тёмный
Шо по коду?
Шо по коду?
Шо по коду?
Подписаться
🇺🇦 Технічно-популярний подкаст «Шо по коду?» про програмну інженерію та технології. Ділимось досвідом, розповідаємо байки та обговорюємо цікаві теми та новини інформаційного світу.

Ведучі:

‣ пан Ігор → twitter.com/ikalnytskyi
‣ пан Роман → twitter.com/rpodoliaka
‣ пан Руслан → twitter.com/rkiyanchuk

Комментарии
@volodymyrsulevskyi7351
@volodymyrsulevskyi7351 2 дня назад
Продублюйте посилання на збір всюди пліз, в телегам, в опис відео, в коментарях.
@andriybench4273
@andriybench4273 3 дня назад
Про "сім моделей" - це ж серія книг від O'Reilly - seven databases in seven weeks і т.п.
@andriybench4273
@andriybench4273 3 дня назад
Про мавени та свни тут цікаво розказано. Якраз вчора дивився ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-6HQZhSHgf8U.htmlsi=_h0spmlD3anh-GcE
@ukrmapper
@ukrmapper 3 дня назад
14:54 🤣
@shopokodu
@shopokodu 2 дня назад
😅
@Ukuraina-cs6su
@Ukuraina-cs6su 3 дня назад
Ксенофобія це страх невідомого. Кац🎉апи це щось невідоме?
@valerii5930
@valerii5930 3 дня назад
Вітання пану Руслану 🥳
@shinobi_313
@shinobi_313 7 дней назад
Взагалі історія з видаленням дивна: клієнт міг втратити багато грошей через таку радикальну поведінку, особливо у гемблінгу
@shinobi_313
@shinobi_313 7 дней назад
Є талмут, яким в цілому і вбити можна, пана Стіва МакКоннела 'Code complete' . має багато невеличких порад, в тому числі про читаймість.. але там є в преамбулі як треба іі читати: не глава за главою як художню, а використовуючи як збірку рецептів в якій є перелінковка певна.
@shinobi_313
@shinobi_313 7 дней назад
В цьому плані треба не забувати що айтішне комьюніті складається в тому числі з закомплексованих задротів.) тому посил на бан в коментарях дійсно правильний, багато суперечок, з особистого досвіду, виникає через нерозуміння іншоі сторони що таке науковий диспут. контраверсіні питання при цьому не тільки можуть виникати, а мусять, бо сумнів в тій чи іншій тезі та твержєенні принесе або нічого, або тільки знайде недолік який треба врахувати. І це навіть критикою важко назвати, але більшість бачить чомусь в цьому особисту образу... І бурно реагує.. тож дякую, спільноту треба виховувати в цьому плані, абсолютно згоден.
@some_name1983
@some_name1983 8 дней назад
о саме читаю її, обговорювані частини мені теж здавались дивними але так як обговорити не було з ким було заключено шо я просто дебіл і не розумію абстракцій але читати і перечитувати потрібно особливо якщо працюєш не на біг брата і вхідний рівень на порядки менший і іноді приходиться пояснювати і битися за банальні речі як от видалення старого коду а не коментування його, то пан Роб розширює поле аргументів на вашу користь
@dimitro.cardellini
@dimitro.cardellini 9 дней назад
UPDATE: все ж таки важливо самому читати книжки! ;) 35:02 -- в книжці не >add<FirstName, а -- >addr<FirstName, тобто не контекст операції, а контекст структури даних. Суть запропонованого дядьком Бобом (та Tim-ом Ottinger-ом) рефакторингу в першому прикладі саме і полягає в тому, що вони виносять змінні number, verb та pluralModifier разом із логікою побудови самого повідомлення в окремий клас GuessStatisticsMessage, а метод printGuessStatistics перероблють відповідним чином: private void printGuessStatistics(char candidate, int count) { String guessMessage = new GuessStatisticsMessage().make(candidate, count); print(guessMessage); } Якщо читати книжку, то це виглядає доволі логічним, ведучі самі ж пропонували зробити структуру -- от її і зробили. _____________________________________________________________________________ Мені здається, що у дядька Боба просто приклад не дуже вдало підібраний. В першому прикладі з книжки маємо три блокі обчислень, які пов'язані з контектом обчислення тільки через умову. Реафкторінг нам пропонує додати ще один зв'язок із контекстом через ім'я функції. А те, що це довелося робити через мутабільний стан екземпляру класу -- то це вже специфіка Java. Тобто, якщо відкинути "другорядні", з т.з. розділу Книги, претензії щодо: - складності розрахунку (обчислюємо частини повідомлення, а потім його будуємо, в очевидь більш правильно одразу будувати) - мутабільності стану -- це спеціфіка Java - порушення розділення відповідальності (не виводимо в консоль результат) то буде виглядати, логічно. Той самий приклад на TS виглядав би якось так: { // before refactoring const guessStatisticsMessage = (candidate: string, count: number): string => count === 0 ? `There is no ${candidate}` : count === 1 ? `There is 1 ${candidate}` : `There are ${count} ${candidate}s`; } { // after refactoring const noLetterMessage = (candidate: string) => `There is no ${candidate}`; const singleLetterMessage = (candidate: string) => `There is 1 ${candidate}`; const manyLettersMessage = (candidate: string, count: number) => `There are ${count} ${candidate}s`; const guessStatisticsMessage = (candidate: string, count: number): string => count === 0 ? noLetterMessage(candidate) : count === 1 ? singleLetterMessage(candidate) : manyLettersMessage(candidate, count); } чи мав би сенс такий рефакторінг? А чому б ні? Особливо, якщо припустити, що треба додати категорію часу ) Але як би там не було, ви дуже класний висновок зробили: краще читати вчасно ;)
@rostyslavv2006
@rostyslavv2006 9 дней назад
"я відчуваю, коли треба міняти" - вайби інструктора юа
@shopokodu
@shopokodu 9 дней назад
😁
@rkiyanchuk
@rkiyanchuk 9 дней назад
Відчувай!
@shinobi_313
@shinobi_313 7 дней назад
Я думаю багато хто проходив на власній шкурі гадання та інтуїтивні зміни щоб шось полагодити.. просто мали брак знань чи то досвіду щоб трейсити, дебажити, профілювати, моніторити, тестити і якісними характеристиками та цифрами підтверджувати своі 'відчуття'. Але бачу по багатьох кого менторів, що як не питай, як не підказуй, як не кажи тупо що і як зробити - люди мають цей розрив між теорією і практикою подолати власноруч набивши власні гулі..) А ще є оптимізаціі, які тупо треба і необхідно покривати коментарями що є дурним тоном у чистому коді.
@user-qp5gu8zg4y
@user-qp5gu8zg4y 9 дней назад
Гівно а не відео
@CodeBeep
@CodeBeep 9 дней назад
Вітання пану Руслану!
@rkiyanchuk
@rkiyanchuk 9 дней назад
Щиро дякую!
@user-nl7ek7qt7r
@user-nl7ek7qt7r 9 дней назад
Теж не дочитав до кінця, і не приділив стільки уваги прикладам, а вони і справді жахливі, в цілому із холіваром погоджуюсь. Мені подобається функціональне мислення хлопців. Не забувайте, що дядько Боб якраз і адвокатував до функціонального програмування більшу частину своєї кар'єри) P.S. Як гарно мати паттерн матчинг у голові функції і забути (ну майже) про if/else стейтменти (erlang, Elixir).
@rkiyanchuk
@rkiyanchuk 9 дней назад
З зіставленнями (паттерн метчингом) в Еліксирі теж чимало способів вистрілити собі в ногу. Наприклад класика це натрапляти на unmatched value отримуючи :ok там де патерн очікує лише {:ok, value} чи {:error, msg}, або ж навпаки.
@user-nl7ek7qt7r
@user-nl7ek7qt7r 9 дней назад
@@rkiyanchuk Звичайно, що у всього є мінуси. Але конкретно у випадку із великою (чи навіть 3) бранчами логіки, як на мене, набагато зрозуміліше бачити декларацію функції три рази, ані ж if else elsif.
@user-nl7ek7qt7r
@user-nl7ek7qt7r 9 дней назад
unmatched value у першому випадку (якщо це матч локальної змінної) видасть MatchError, а у випадку із функціями FunctionClauseError, так що "нога" повинна залишитись цілою якщо звісно код покритий тестами. Але і в проді такі баги легко виправляти.
@user-nl7ek7qt7r
@user-nl7ek7qt7r 9 дней назад
@@rkiyanchuk До того ж, "вистрелити" вийде тільки якщо код не протестований) Але навіть у цьому випадку такі баги легко ловляться і швидко виправляються, тому що коли вони відбуваються у рантаймі - знайти їх по помилці дуже легко.
@rkiyanchuk
@rkiyanchuk 7 дней назад
@@user-nl7ek7qt7r Інколи не дуже легко, коли там pipeline з 7-10 рівнями вкладеності 😅
@ukrmapper
@ukrmapper 10 дней назад
Дякую за подкаст! Наче взяли тай сформували ті думки які виникали у мене при прочитанні Чистого Коду Що цікаво, дочитати я так і не дочитав 🤪
@VictorMyronenko
@VictorMyronenko 10 дней назад
коментар про Італію і сири... цей пан схоже взагалі не усвідомлює, в якій реальності живуть люди і на яку аудиторію він вєщає. Краще зам"ютитись - від цього подкаст тільки виграє. Бо ці постійні перебивання і думки ні про що - ну таке собі, замало знань, порівняно з іншими учасниками подкасту. Ігорю і Роману величезний лайк. Дякую, що ділитесь досвідом, завжди з задоволенням дивлюся випуски, де ви вдвох, чи то розмовні, чи то парне програмування. Гість теж красавчик, скромно, все по ділу 👍
@rkiyanchuk
@rkiyanchuk 9 дней назад
Якщо ви маєте змогу дивитись подкаст на Ютубі, та ще й коментувати його, то ваша реальність теж цілком непогана.
@CodeBeep
@CodeBeep 14 дней назад
Дуже дякую шановному панству!
@loremipsum9802
@loremipsum9802 14 дней назад
Ви якщо вже використовуєте дурнуваті правила з "Правопису 2019", то може тоді вже і базові правила української мови треба також не забувати? До прикладу: питання не задають, а ставлять. У вас така шалена кількість банальних помилок, проте "в етері". Як в анекдоті: "або хрестик зніми, або труси надягни".
@rkiyanchuk
@rkiyanchuk 9 дней назад
Вважаєте, краще подкаст був би граматично правильною російською?
@tomsage2211
@tomsage2211 Месяц назад
Дякую що не зупиняєтесь💛💙
@shopokodu
@shopokodu 29 дней назад
Дякуємо за підтримку! ❤️
@tomsage2211
@tomsage2211 Месяц назад
Го монобанку
@rostyslavv2006
@rostyslavv2006 Месяц назад
знов короткий випуск на годину)
@dilnix
@dilnix Месяц назад
я не маковод, лише лінуксоїд =) пане Ігор, без сумніву робіть обов'язково відос по тому як загалом весь лінукс працює, буде і самому подивитися корисно, та й іншим поширити
@NERO-uo8vs
@NERO-uo8vs Месяц назад
Завдяки вам я перевірив пошту і виявив такий саме лист)
@some_name1983
@some_name1983 Месяц назад
пан Ігор: ʼя читав по растуʼ шо я чую 'я читав про наступ'
@shopokodu
@shopokodu Месяц назад
Пан Ігор про наступ читав, але краще б не читав. 🙁 Кляті москалі.
@yurashymon
@yurashymon Месяц назад
Коментар, щоб не було пусто в коментарях🙂
@narentie5075
@narentie5075 Месяц назад
Коментар, щоб не було пусто у коментарях до коментаря.
@vdubyna
@vdubyna Месяц назад
Дуже часто просто сідаю і роблю краще рішення, щоб зрозуміти чому його не зробили правильно одразу
@OlekUA2
@OlekUA2 Месяц назад
Цікавий подкаст, дякую! Спробую зробити чей челендж на С++. Послухав ваші інші подкасти і помітив, що "покажчик" трохи ріже вухо, здаєтьбся по значенню, більше підходить "вказівник". Покажчик - це щось, що показує, наприклад, якусь цифру (покажчик оборотоів двигуна, покажчик температури), а вказівник - це стрілка, яка вказує на щось (на адресу в пам'яті).
@michaelsuddya948
@michaelsuddya948 Месяц назад
Додам свій лайк і коментар для просування
@rostyslavv2006
@rostyslavv2006 Месяц назад
твітер часто ріже рейтинги для зборів
@aodushko
@aodushko 2 месяца назад
У пана Руслана шикарні дві лампи!
@Stan0men
@Stan0men 2 месяца назад
У мене така bmw, e84 🌚
@user-xx3eo2hr2y
@user-xx3eo2hr2y 2 месяца назад
Ютуб нарешті порекомендував щось цікаве, послухав, дізнався щось нове. Дякую.
@qlbc7043
@qlbc7043 2 месяца назад
"Шпарина", у значенні backdoor, як шпарина в паркані, начебто підходить
@qlbc7043
@qlbc7043 2 месяца назад
Дякую, чудовий подкаст Прогавив би цю вразливість, цікаво було послухати
@yurashymon
@yurashymon 2 месяца назад
Дуже цікаво, дякую. Особливо хочу зробити акцент на словах пана Ігоря, що треба, щоб компілятор вимагав, а не optional. Бо зараз на проекті, де тільки у одному з 40 пакетів є 200+ варнінгів. Трошки неприкольно фіксить сегфолти потім. Запропонував їм переписати на Раст, а вони відмовились чомусь😁
@alexdvirko8966
@alexdvirko8966 2 месяца назад
Жарти у вас топ)
@andriykovalenko8743
@andriykovalenko8743 2 месяца назад
Designated initializers в C++ є з C++20
@sg1337
@sg1337 2 месяца назад
Зі Staff розібралися. А Principal хто?
@dilnix
@dilnix 2 месяца назад
не з питань вигідності, але погоджусь =)
@shopokodu
@shopokodu 2 месяца назад
Можна два рази погодитись! ❤️
@Lisovyk_t
@Lisovyk_t 2 месяца назад
Дякую за подкаст. Було цікаво послухати
@michaelsuddya948
@michaelsuddya948 2 месяца назад
Дякую за подкаст Вітання із Кракова :))
@alexunkq
@alexunkq 2 месяца назад
Mono для запуску C# вже давно не потрібен. Наприклад, ми розробляємо свої сервіси на вінді, а хостимо в AWS в докері під лінуксом, в продакшені. Інколи я дістаю мак і працюю на ньому використовуючи Rider (або VS Code).
@Lisovyk_t
@Lisovyk_t 2 месяца назад
Дякую за подкаст. Добавлю кілька слів для алгоритмів ютуба(у)
@markserkiz1162
@markserkiz1162 2 месяца назад
Здається то хтось засинає під «це ж було вже» (пан анонім та Юра Федоренко) А загалом краще довгий подкаст, аніж поверхневе обговорення теми
@user-gc1up4yy2h
@user-gc1up4yy2h 2 месяца назад
дякую за корисний стрім
@Liubov_110
@Liubov_110 3 месяца назад
Це тестовий коментар. Але дякую за цей подкаст 👍🎶
@antoninababenko9137
@antoninababenko9137 3 месяца назад
Такий класний та життєвий епізод, чому тільки 46 лайків
@olegmakarikhin
@olegmakarikhin 3 месяца назад
Про MS SQL Server. Так як це сервер в якому можна виконувати декларативний код, то у нього є доволі складна система, парсер, аналізатор, оптимізатори для вибір стратегії реалізації запиту, які індекси використовувати, в якому порядку джоінити, яким методом джоінити. В процесі експлуатації виявляється що іноді сервер неоптимально вираховує вибір індекса або метода джоіна, або якась інша оптимізація робить погано в якомусь іншому кейсі. з одного боку частину таких перемикачів можна винести в конфігурацію, але деякі перемикачі функціональності повинні працювати в скопі не всіх процесів всього сервера, а в контексті однієї сесії, чи навіть конкретного запита одного процеса. деяку зміну поведінки дозволяють робити звичайним непривелегійованим користувачам, і в ms sql це set-інструкції, наприклад зміна рівня ізоляції транзакції, або зміна поведінки роботи з NULL, або trailing spaces, форматування чисел та дат. є перемикачі які вмикають-вимикають функціональність в контексті бази, це робиться alter database .. set somefunc = ON. Є аналогічні перемикачі рівня таблиці або індекса - наприклад стиснення даних. Чи рівень запитів - хінти, як то вказати який саме індекс потрібно використати, або який метод джоіна використати. але є і такі хінти як: FORCE_LEGACY_CARDINALITY_ESTIMATION . яка кричуща назва. але справжня система схованих від користувачив перемикачів це трейсфлаги learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql. і часто це зміна поведінки або вимкнення оптимізації. Як приклад флагу 13116 який Disables the fix for bug 13685819.