Страница телеграм канала Экстраполяция IT

itextrapolation logo

Экстраполяция IT

3459 подписчиков

Канал об IT в целом и о программировании в частности. Для обратной связи пишите @aratak Платной рекламы на канале нет, взаимных пиаров тоже, любителей объеденяться в репост-кланы в бан. фейсбук: fb.me/alexey.osipenko твиттер: twitter.com/alexeyosipenko


Входит в категории: Технологии
Экстраполяция IT
11.10.2019 11:10
В современном мире айти-разработки, при преобладании удаленной работы и сотрудничестве с фрилансерами появился занятный феномен перекладывания ответственности за простой в работе. В офисном мире, если у программиста нет задач, он может делать что угодно и ему за это все-равно заплатят, он же в офисе! У фрилансеров же обратная ситуация. Почему-то принято считать, что отсутствие задач у фрилансера (или удаленного сотрудника) – это проблема самого фрилансера. Решение выбирают фрилансеры вполне логичное и очевидное — берут себе несколько проектов и постоянно переключаются между ними. Из-за этого, собственно, и пошла легенда, что фрилансером быть тяжелее, чем офисным сотрудником. А быть должно все наоборот. Только никому не говорите, что это я вам рассказал. Ставьте сами себе задачи с формулировкой «Мне же все-равно нечего делать, поэтому буду делать вот эту полезную задачу. Остановить меня можно только другой задачей». Профессиональным будет считаться не только качественное выполнение таких задач, тщательное описание до и отчет после, но и адекватность поставленных задач. Очевидно, что задач вида «перепишу-ка я вот этот модуль, потому что там код – говно» быть не должно в принципе, а вот формулировка «помнится, проекту давно была нужна вот эта фича, а сейчас как раз подходящий момент, чтобы ее сделать» крайне удачная. Дополнительной выгодой от такой стратегии поведения будет демонстрация руководству проекта (менеджеру, если хотите) того, как по-вашему должны выглядеть поставленные вам задачи. Эффекта от такого поведения может быть два. Или менеджер поймет, что если у вас нет задач, то вы начнете делать что-то не то и начнет суетиться. Или менеджер поймет, что и без дополнительного контроля вы делаете все правильно. Можно провести аллегорию с производством цемента. Если доменную печь, где происходит обжиг мергеля, остановить, то печь начнет остывать, если она остынет, то кирпичи немного уменьшатся от остывания и начнут сыпаться. Остановка доменной печи — гораздо более дорогая операция, чем поддержание температуры в доменной печи даже без сырья и производства, чтобы температура была достаточно высокой. Поэтому обжигать нужно постоянно и отсутствие сырья уж никак не проблема печи. #перечитываяэкстраполяцию
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
10.10.2019 11:10
«Аджайл — он о процессе, а не о результате. Поэтому если вам процесс важнее результата, то смело его используйте».
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
07.10.2019 11:10
В непосредственно рутинной каждодневной разработке становится целой проблемой определить насколько хорош код, который вот прям сейчас вот пишется. И это не потому что разработчик недостаточно хорош для этого кода, а потому что придуманный код для писавшего по определению уже самый лучший, а иначе тогда вообще зачем он его придумал тогда. Обычно риторика добавления костылей в кодовую базу оперирует понятиями «могут быть какие-то части кода не совсем красивые, но по-другому ведь никак тут не напишешь», и последствия таких рассуждений мы с вами все знаем. Существует техника самопроверки написанного кода, при котором обнаружить прям все проблемные места в пулл реквесте нельзя, но большинство из них отловить все-таки получится. Это набор лакмусовых бумажек (триггеров, если хотите), о которых нужно всегда помнить в процессе написания кода. Вот некоторые из них: — Достаточно ли просто тестировать получившийся код? Если возникают проблемы с написаниями тестами, то где-то тут попахивает плохим кодом. — Хорошо ли этот код масштабируется вертикально? И речь тут не о запуске нескольких приложений рядом, а о добавлении сущностей уровня выше. Вроде company_id если хотите. — Легко ли придумать название методу или переменной? Если называние не слишком очевидное или придумывается тяжело, то скорее всего и содержимое не слишком очевидно. — Много ли методов нужно переопределять? Много ли граничных условий обрабатывается? Или в общем случае: как формулируются правила по которым работает ваша функциональность и сколько исключений из этих правил? Касается это не сколько бизнес-логики, а сколько правильно подобранной архитектуры и структуры кода. Если в системе нашелся неприятный баг и исправить его можно, добавив еще одно условное ветвление, то значит этот баг появился не на пустом месте, а от неправильно подобранной структуры кода. Таких критериев достаточно много, некоторые даже просто так сформулировать не получается и в каждом отдельно взятом проекте условия могут разниться. Более того, отдельно взятый разработчик уже имеет набор таких критериев где-то у себя в подсознании и определяет плохо пахнущий кусок кода именно по этим критериям. Попробуйте сформулировать эти критерии для себя письменно и постоянно совершенствуйте этот список. Помимо четкой формулировки говнокода вы еще получите прекрасный инструмент самотестирования, ведь через полгода написания свой код кажется не таким уж и хорошим, а вот почему — будет видно по появившимся новым критериям. #перечитываяэкстраполяцию
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
04.10.2019 11:10
Чем наука отличается от религии? Нет, ну правда, выдуманный чувак, наличие которого нельзя ни доказать ни опровергнуть не в счёт, ведь это не отличие, а лишь следствие отличия. К тому же физики придумали себе всякие теории струн, которые тоже пока недоказуемы и это ничем принципиально не лучше постулатов про вездесущего божества, который присутствует везде и нигде одновременно. И к тому же и религия и наука занимаются одной и той же вещью: пытается ответить на вопросы об устройстве мира. Принципиальным отличием же является способ, которым те или другие делают выводы. Религия исходит из того, что есть некая аксиома, которую даже не нужно обосновывать, но которая неплохо обьясняет разные штуки. Квинтэссенцией религиозного подхода можно считать принцип Бритвы Оккама, в которой утверждается, что меньшее число допущений лучше. Такой подход называется методом дедукции. Наука же не предполагает допущений в принципе, а лишь систематизирует и обобщает наблюдения и эксперименты. Хорошим примером научного подхода назову сравнительно недавнее доказательство наличия бозона Хиггса, где доказательство сводилось к тому, что было сделано громадное количество экспериментов, на основании которых просто сказали, что эта формула работает лучше других. Этот подход называют индукционным. Итак, дедукция подразумевает решение до экспериментальных проверок, а индукция навязывает исключительно систематизацию знаний и порицает предположения и догадки. Так вот, давайте про айти. Разработчикам нужно брать лучшее от двух миров. При дебаге и программировании лучше использовать дедуктивный подход, проводя кучу мысленных экспериментов и строя догадки и предположения, используя бритву Оккама. Это позволит сэкономить кучу времени и сил в большинстве случаев. А вот при проектировании лучше придерживаться индуктивного способа мыслить, чтобы исключить типичные для религии фундаментальные ошибки.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
26.09.2019 13:09
Минутка ностальгии. Много лет назад моим окном в тот мир, частью которого я отчаянно хотел стать, был журнал Ксакеп (Xakep). Я читал его весь, частенько один номер по несколько раз. И в этом журнале была юмористическая рубрика, которую вёл Даниил Шеповалов. Даня этот гнал чернуху со страшной силой, и в том возрасте это было очень свежо и весело. Так вот, в одном из вопросов там была очень забавная шутка. «Через пять лет я удочерю 17-летнюю девочку из сиротского приюта и на практике покажу ей, почему "жизнь - дерьмо!" и "все мужики - козлы!". Ну а после удовлетворения всех своих извращенных фантазий, естественно, продам ее в рабство на плантации сахарного тростника. ("Слово "дерьмо" возможно является бранным выражением и его употребление в литературном языке нежелательно", - вот что выдал Ворд, подчеркнув красной волнистой линией это чудесное существительное. "Какое же все-таки счастье, что программы пока что не умеют проверять смысловую нагрузку текста", - подумал Даня) Подобная проверка Ворда действительно выглядит очень забавно, как напоминание, что ты не протёр окна, когда у тебя сгорел весь дом. Я сейчас отправил пулл-реквест, на который код-климат сказал мне, что у меня там новые проблемы в коде. Проблемами являлось то, что я не написал .freeze после объявления константы, несколько строк написал в двойных, а не в одинарных кавычках и одной строкой превысил 80 символов. То же самое он говорит и другим ребятам, и мы дружно шлём туда всякое дерьмо («слово "дерьмо" возможно является бранным выражением и его употребление в литературном языке нежелательно»), но везде написано .freeze, кавычки одинарные и строки короткие. В коде всё по смыслу, как в текстах Шеповалова и групповуха немощи по Петровичу, и одно и тоже, сделанное пятью разными способами в разных местах, и тыща sql-запросов на один http request... Но код-климат бдительно запрещает разработчикам использовать в текстах слово «дерьмо». Ну хоть что-то у нас в безопасности. #dimoneverything
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
25.09.2019 11:09
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Эдсгер Вибе Дейкстра.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
24.09.2019 11:09
«В наше время нельзя обойти вниманием теорию, считающую, что всякая дружба на самом деле – однополая влюбленность. Здесь очень важны опасные слова "на самом деле". Если вы скажете, что всякая дружба осознанно гомосексуальна, все поймут, что это ложь. Если вы спрячетесь за вышеприведенными словами, получится, что друзья и сами ничего не знают об ее истинной сути. Это уже нельзя ни доказать, ни опровергнуть. Само отсутствие свидетельств окажется свидетельством. Дыма нет – значит, огонь хорошо скрыли. Конечно, если огонь вообще есть. С таким же правом можно сказать: "Если бы в кресле лежала невидимая кошка, оно казалось бы пустым. Оно пустым кажется. Следовательно, в нем лежит невидимая кошка"» Клайв Льюис, «Любовь». #dimoneverything
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
23.09.2019 13:09
Аргументы, как аналогии и доказательства, как аналогии. Дима в нашем чате шикарно объяснил зачем же вообще нужны аналогии и почему их используют.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
23.09.2019 12:09
Приводить аналогии из других областей — это прям антипаттерн общения. Фишка аналогий в том, что любые аналогии неизбежно ведут к дискуссии об аналогии, а не оригинале, а это почти всегда обречено на провал. Например, очень клёвая аналогия с арбалетчиками и лучниками всё ещё аналогия, хоть и удачная. Начинать рассуждать о наличии более совершенных мушкетов, особенностях осады замков, профессиональных болезнях и о конных всадниках с луками и арбалетами почти лишено смысла. Другое дело, когда оказывается, что два совершенно разных процесса ведут себя одинаково и подчиняются одинаковым законам. Вот тогда вот самое время рассуждать об решениях в одной области, как о решениях в другой. В большинстве случаев это не называют аналогией, а рассказывают об закономерностях или общих причинах. Например, эффект ложной слепоты и причины, по которым нужно вводить ревью пулл реквестов, имеют одну и ту же причину и все трюки этой самой слепоты применяются и к программированию непосредственно. Тут как бы и аналогий нет, верно ведь? В общем, удачных аналогий не существует. Аналогия либо неудачная либо не аналогия.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
22.09.2019 11:09
Есть фраза-паразит, которая даёт понять, что автор вообще не разбирается в вопросе и понятия не имеет о чем говорит. На самом деле таких фраз несколько и есть одна самая бесячая среди этих фраз. Это фраза «на самом деле».
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
17.09.2019 11:09
Сервисы и микросервисы. Более-менее понятно что такое «сервис» или как сейчас модно говорить «SaaS». Понятно, что есть некая фича, которую проще отдать кому-то в исполнение и работать с этой фичей, как с чёрным ящиком. Платишь за подписку каждый месяц, получаешь работающую фичу и ещё с периодическими внезапными улучшениями от команды разработчиков. А вот с микросервисом немного сложнее. В подавляющем большинстве случаев микросервисная архитектура — вынужденное решение, когда монолитное приложение распухло и мешает ходить. На микросервисы переходят, усиленно рефакторя и деребеня существующее приложение, состоящего из одного большого куска кода. Само собой, что в этом самом куске кода всё настолько переплетено, что потянуть за нить и не запутать клубок практически невозможно. В итоге микросервисы получаются сильно связные, а данные одного являются неотъемлемой частью второго. Короче, без микросервисов было бы лучше и с монолитом отлично живётся. А фишка в том, что к микросервисам нужно относиться, как к SaaS-решениям, у которых один клиент. Если можно кусок кода изолировать в чёрный ящик, а работу с возможностями свести к документации, то в итоге получится отличный микросервис.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
14.09.2019 11:09
И будучи одним из таких индивидуумов, я даже не уверен, что мир вокруг не есть плодом моего воображения.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
14.09.2019 11:09
Центр вселенной и пуп мира. Объективности не существует. Любое существо с осознанием себя, как личности, эгоцентрично по определению. Осознавая себя, свое место в окружающем мире, личность не в состоянии осознать возможность восприятия, отличного от своего собственного восприятия в той или иной степени. Ребенок пяти лет не может точно сказать сколько братьев и сестер у его брата - он называет число меньше на единицу от необходимого, не представляя себя не центральным объектом мысленного эксперимента. Студент не понимает принципиальность преподавателя, отказывающегося ставить оценку на халяву, а преподаватель в голову взять не может оговорки студента, не подготовившегося к экзамену. Водитель не понимает необходимости пешеходов переходить дорогу в неположеном месте, хотя сам пол года назад был пешеходом. Кассир банка не понимает проблем клиентов в очереди, не смотря на то, что час назад отстоял очередь в регистратуру и не попал на прием из-за перерыва на обед. Личность представляет себе мир, как набор событий и предметов специально расставленных таким образом, чтобы она чувствовали себя именно так, как она себя чувствует. Более приближенный к интернету пример: составить психологическую картину личности со всеми его мыслями, тайными желаниями, сексуальными потребностями и насущными проблемами можно лишь по ретвитам и репостам. Далеко не все способны красиво и четко сформулировать свою мысль или желание, а вот прочитать чужую и согласиться с ней - пожалуйста. Итого мы имеем одну четко и ясно сформулированную мысль и группу пользователей, которые с ней согласны. И не просто согласны, а согласны до такой степени, что будь они чуточку образованнее и собранней, это была бы их мысль. Социальные сети с возможностью репоста стали чем-то вроде хаотично разбросанных мыслей в виде ленты сообщений от твоих "друзей". Мысли генерировать в состоянии лишь единицы, тысячи же лишь могут пропустить мысль через сито своего восприятия и получить на выходе соответствие или отвергнуть ее, как непонятую, не соответствующую своим мыслям. Кстати, именно поэтому сервисы, требующие от пользователя выдавать необходимую единицу смысла менее популярны сервисов, где основным средством самовыражения есть возможность лаконично изъяснить свои мысли за счет чужого умения красиво эти самые мысли формулировать. Наугад взятый фолловер из твиттера, на 50 процентов состоит из ретвитов, на 25 процентов из публикаций сервисов а-ля "мне понравилось видео на ютубе" или "я на автостанции Южный стал майором", еще на двадцать - из ответов на другие такие де твиты. И именно львиная доля этих сообщений и есть тот набор мыслей, который мог бы быть авторским при других обстоятельствах. Действительно ли представленный индивидуум настолько умен и интересен, как он заявляет о себе с помощью набора чужих мыслей? Вспоминается история в которой начинающий дизайнер в резюме прикреплял работы известных дизайн-студий, мотивируя это тем, что он тоже так может. Еще одним примером может служить так называемый интернет-диалог или процесс комментирования. Неосознанное расположение своего собственного я в центре вселенной, требует от личности обязательное навязывания своего превосходства во всем — начиная от глубины понимания темы разговора только что подсмотренной в википедии, заканчивая тонкостью шуток, отпускаемый в адрес собеседника, доказывающему свое превосходство в теме разговора. Осознание своего собственного я и, как следствие, своего собственного мнения делает убежденность в объективности своего мнения непоколебимым. Любой диалог и процесс обмена информацией между двумя индивидуумами сводится к формированию и в последствии убеждения собеседника в объективности своего субъективного мнения. Объективности не существует. Точно так, как не существует Вселенского Разума или жизни вне биологической или какой-нибудь другой оболочки. Существуют только множество проекций реальности через эгоцентричное осознание индивидуумов.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
11.09.2019 11:09
Блин, я только сейчас прочитал (не додумался даже, а именно прочитал), почему профессионали дают преуменьшенные оценки и почему хер пойми, чо с этим делать, и почему не надо ничего с этим делать, а пусть менеждер выполнит финальную коррекцию у себя, он сделает это лучше, чем мог бы ты. Короче, мы, когда уже круты, на самом деле оцениваем задачу абсолютно правильно. Вот вообще. Мы довольно точно предсказываем, сколько времени у нас займёт решить эту задачу, исходя из того, что 100% этого времени мы будем в своей наилучшей форме. Нас ничего не будет отвлекать в процессе, мы не будем уставшими, думать, что пора забирать ребёнка, что хочется в кино и жизнь задрала. И что мы будем аж вообще молодцы. И это всегда неправда. И вот КПД у всех разный, у всех меньше единицы, но у всех разный. А это именно КПД в буквальном, самом буквальном смысле этого слова. И менеджер частенько после определенного опыта работы с тобой его знает. А ты в том, что КПД этот меньше единицы, не сильно хочешь признаваться даже себе и это тянет на основную причину кривых оценок. Ты, конечно, закладывешь погрешность, давая оценку, но совсем не на это, а на то, что там будет всё сложнее, чем кажется, например. И оказываешься прав, конечно, но в конце всё один хрен ещё умножается на вот этот вот КПД. #dimoneverything
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
10.09.2019 11:09
В этом году я не достаточно крут, чтобы выступать на конференции, но конференция от этого хуже точно не становится. В общем, 28 сентября будет конференция «Эликсир Клаб» и в этот раз ребята хотят сделать не митап, как обычно, а целую конференцию на целый день. И в гости позвали именитых спикеров. Короче, я там буду, ищите меня в зале. http://bit.ly/2lM3jPP P.S. Скидка в 10 процентов по коду extrapolation.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме