Бобук
👤 SpeakerAppearances Over Time
Podcast Appearances
Да, вот а где граница? То есть что означает легко? То есть там, например, не знаю, где граница, где ты скажешь легко, это, например, можно что-то добавить через юзерский интерфейс, то есть условно юзеры самым могут добавить новый тип, там, новую группу условно создать, ну, например. Или это все в коде определено? Где вот эта граница flexibility?
Да, вот а где граница? То есть что означает легко? То есть там, например, не знаю, где граница, где ты скажешь легко, это, например, можно что-то добавить через юзерский интерфейс, то есть условно юзеры самым могут добавить новый тип, там, новую группу условно создать, ну, например. Или это все в коде определено? Где вот эта граница flexibility?
И вот на уровне систем этот вопрос прям гораздо актуальнее стоит, чем на уровне кодов.
И вот на уровне систем этот вопрос прям гораздо актуальнее стоит, чем на уровне кодов.
Ну, по сути, код-то общий, да, у них? То есть, типа, если ты захочешь поменять логику доступа к SFTP, то ты вот в одном месте меняешь?
Ну, по сути, код-то общий, да, у них? То есть, типа, если ты захочешь поменять логику доступа к SFTP, то ты вот в одном месте меняешь?
Ну вот в этом случае еще, мне кажется, да. Но вот вопрос, да, в том, что представь, у тебя там, не знаю, логика начинает чуть-чуть отличаться, да, там не SFTP, например, а какой-нибудь, что у тебя там, HTTP. И вот тянет же абстрагировать это. Вот прям хочется на уровне системы.
Ну вот в этом случае еще, мне кажется, да. Но вот вопрос, да, в том, что представь, у тебя там, не знаю, логика начинает чуть-чуть отличаться, да, там не SFTP, например, а какой-нибудь, что у тебя там, HTTP. И вот тянет же абстрагировать это. Вот прям хочется на уровне системы.
Нет, эту часть я уже немножко постиг, я уже бьюсь в нашей кодовой базе, как раз там, знаешь, когда в Go же нет операции вот этой коалесции, да, QLS, ну, короче, НИЛ разворачивать, что у тебя там нельзя поставить, не знаю, person, знак вопроса, точка, address, знак вопроса, точка, line1, что-нибудь такое, да, если какая-то из них НИЛ, то все НИЛ.
Нет, эту часть я уже немножко постиг, я уже бьюсь в нашей кодовой базе, как раз там, знаешь, когда в Go же нет операции вот этой коалесции, да, QLS, ну, короче, НИЛ разворачивать, что у тебя там нельзя поставить, не знаю, person, знак вопроса, точка, address, знак вопроса, точка, line1, что-нибудь такое, да, если какая-то из них НИЛ, то все НИЛ.
Вот, и у нас, естественно, естественно, разумеется, мы написали свой хелпер, который умеет это все НИЛ оборачивать, А я говорю, да нафиг он нужен, давайте удалим и просто без него. Он говорит, ну как без него, а как же, если нет. Я говорю, так напишите if person not nil, то вернуть пустую строку. if person.address nil, то вернуть пустую строку. И так далее. Просто тупо ифами. Что плохого в ифах?
Вот, и у нас, естественно, естественно, разумеется, мы написали свой хелпер, который умеет это все НИЛ оборачивать, А я говорю, да нафиг он нужен, давайте удалим и просто без него. Он говорит, ну как без него, а как же, если нет. Я говорю, так напишите if person not nil, то вернуть пустую строку. if person.address nil, то вернуть пустую строку. И так далее. Просто тупо ифами. Что плохого в ифах?
Ксюша, изменилось, мне кажется, не то, что изменился подход. Не забывай, что большинство этих отцов-основателей, все эти книги и прочее, они вообще не программисты, они писатели. Никто из них не занимается ни программированием, ни поддержкой этих систем.
Ксюша, изменилось, мне кажется, не то, что изменился подход. Не забывай, что большинство этих отцов-основателей, все эти книги и прочее, они вообще не программисты, они писатели. Никто из них не занимается ни программированием, ни поддержкой этих систем.
Ну, например, «Дядьку Бобу» я вообще не считаю программистом.
Ну, например, «Дядьку Бобу» я вообще не считаю программистом.
Мне кажется, знаешь, Ксюш, даже не то, что не переиспользовать. Мне кажется, мы очень часто делаем наоборот. Мы вначале его делаем одним методом, да, общим, и начинаем использовать, условно, в двух местах один метод. А мне кажется, надо сначала делать два метода, и вот когда ты видишь, что это реально, они, как этот converge, сходятся к одному, вот тогда выделять в один метод.
Мне кажется, знаешь, Ксюш, даже не то, что не переиспользовать. Мне кажется, мы очень часто делаем наоборот. Мы вначале его делаем одним методом, да, общим, и начинаем использовать, условно, в двух местах один метод. А мне кажется, надо сначала делать два метода, и вот когда ты видишь, что это реально, они, как этот converge, сходятся к одному, вот тогда выделять в один метод.
дать ему немножко времени настояться, потому что в итоге в какой-то момент окажется, что эти два каких-то метода или две функции каких-то, они вначале выглядят одинаково, но на самом деле у них будет совершенно разная жизнь дальше, они будут меняться с разной скоростью, у них будут какие-то условия конечные, то есть они в какой-то момент разойдутся. И вот потом разделять их будет уже сложнее.
дать ему немножко времени настояться, потому что в итоге в какой-то момент окажется, что эти два каких-то метода или две функции каких-то, они вначале выглядят одинаково, но на самом деле у них будет совершенно разная жизнь дальше, они будут меняться с разной скоростью, у них будут какие-то условия конечные, то есть они в какой-то момент разойдутся. И вот потом разделять их будет уже сложнее.