Как стать автором
Обновить
6
0

kotlin, golang, c#

Отправить сообщение

Проблемы накапливаются. Софт тормозит. Везде некомпетентность и хаос

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров53K


Закон Старджона гласит: «Ничто не может всегда идти правильно». Рано или поздно всё ломается.

Это естественная причина, почему софт ухудшается с каждым годом. Иначе и быть не могло. Кодовая база растёт, количество ошибок увеличивается, проекты просто тонут в багах.

Взять недавний случай с багом в Windows Defender, который вызывал тормоза Windows. Крайне показательная история. Да, этот баг обнаружили, но в кодовой базе остались такие же. Мы этого не знаем наверняка, но вполне логично предположить, что количество скрытых багов растёт пропорционально кодовой базе. Поэтому софт всё больше тормозит со временем. Это естественный процесс, почти как закон природы.
Читать дальше →
Всего голосов 148: ↑106 и ↓42+91
Комментарии396

Куда подевались все хакеры? Как правильно обсуждать языки программирования

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров16K

Обсуждая с друзьями и коллегами языки программирования, я осознал, как приблизительно должны выглядеть такие разговоры. В этой статье я расскажу об этом, надеюсь, это окажется для вас полезным.

▍ Что мы на самом деле сравниваем, сравнивая языки программирования?


Придя в гости к другу, я увидел, что на нём надета футболка Golang. Он сказал, что любит Golang, я ответил, что мне нравится футболка, а сам язык чуть меньше. Ему понравилась мысль «обсудить это позже», и после ужина мы уселись на диванах и приступили к разговору. Я хотел поговорить о сборщике мусора (1, 2), о том, что горутины/каналы — это удобная абстракция, но я предпочитаю абстракции BEAM, потому что они позволяют использовать супервайзоры, обсудить очень свободное отношение Golang к корректности, но… он не горел желанием говорить обо всём этом. Мой друг с восторгом рассказывал о том, что ему нравится, что «разработчики на Go знают, что достаточно одного цикла for. Кто-то притащил в мою компанию Scala, и мне очень не нравится смена образа мышления».

Разговор был бесплодным, и мы оба ощущали, что собеседник не ценит то, что было важно другому. Когда люди говорят о языках, которые им нравятся или не нравятся, я группирую аспекты обсуждения на три большие категории, которые назову почва, поверхность и атмосфера:
Читать дальше →
Всего голосов 45: ↑42 и ↓3+53
Комментарии3

Дайте крудошлепа

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров114K

Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.

У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.

Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.

Один коллега посмотрел на меня с немой благодарностью, а начальник офигел и сказал, что код нерасширяем и захардкожен, а тот алгоритм мог пройти за время логN через тысячу вершин и по истечению испытательного урока меня уволили нах, так как мой технический уровень не соответствовал их высоким требованиям, впрочем выдали три зарплаты и я благодарен этим людям. Мой код оставили, тот так и не смогли починить.

Это было вступление.

Уважаемый Яндекс, Сбер и прочая! Я умею быстро решать задачи и кратно увеличивать выхлоп простыми решениями. Я самый умный программист, среди всех ваших работников! Я — НадНадсеньор! Сейчас докажу.

Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:

«Ваш шестизначный пароль доступа в наше приложение: 123...»

Не согласен! ...
Всего голосов 395: ↑332 и ↓63+339
Комментарии731

Проектируем идеальную систему реактивности

Время на прочтение12 мин
Количество просмотров10K

Здравствуйте, меня зовут Дмитрий Карловский и я… крайне плох в построение социальных связей, но чуть менее плох в построении программных. Недавно я подытожил свой восьмилетний опыт реактивного программирования, проведя обстоятельный анализ различных подходов к решению типичных детских болячек:


Main Aspects of Reactivity

Я очень рекомендую прочитать сперва ту статью, чтобы лучше понимать дальнейшее повествование, где мы с нуля разработаем совершенно новую TypeScript реализацию, вобравшую в себя все самые крутые идеи, позволяющие достигнуть беспрецедентной выразительности, компактности, скорости, надёжности, простоты, гибкости, экономности..


Вторая стадия принятия мола в своё сердце: всё ещё пригорает, но уже не можешь остановиться.


Статья разбита на главы, перелинкованные с соответствующими аспектами из упомянутого выше анализа. Так что если вдруг потеряетесь — сможете быстро восстановить контекст.


Повествование будет долгим, но если вы продержитесь до конца, то сможете смело идти к начальнику за повышением. Даже если вы сам себе начальник.

Читать дальше →
Всего голосов 21: ↑16 и ↓5+13
Комментарии15

Как стать мидлом или сеньором-разработчиком, обучаясь на любых курсах по программированию?

Время на прочтение1 мин
Количество просмотров124K

Подробно рассказываем, как стать мидлом или сеньором-разработчиком, ежедневно обучаясь на курсах по программированию в течение года или даже двух.

Читать далее
Всего голосов 469: ↑431 и ↓38+469
Комментарии178

Для чего же всё таки нужны honeypot'ы? Гайд по установке T-pot

Время на прочтение6 мин
Количество просмотров10K

Цель honeypot в работе ЦМР — навлечь на себя атаку или несанкционированное исследование. Такое средство позволяет изучить стратегию злоумышленника и определить, каким образом могут быть нанесены удары по реально существующим объектам безопасности.

Рассмотрим же некоторые поближе и даже установим один из них!

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии4

Не учите паттерны, учите концепции

Время на прочтение3 мин
Количество просмотров41K
Добрый день (или вечер, или утро, в зависимости от того, когда выйдет этот пост).

Я хочу высказаться об элитарной части программирования и донести, в общем-то, очевидную мысль до начинающих в back-end (и не только) разработке, попутно используя попытку начать писать на Хабре.

Итак


Любой программист с хоть немного хорошим вкусом, начавший программировать по своей воле, после понимания основ языка и написания первых проектов, будет задаваться вопросом не «как сделать что-то», а «как сделать что-то правильно» и «какие тут есть стандарты красоты».
Читать дальше →
Всего голосов 93: ↑68 и ↓25+43
Комментарии107

Айтишный дауншифтинг, стремление к минимализму и простоте

Время на прочтение9 мин
Количество просмотров37K
Astrobotany

Современные IT чрезвычайно сложные, если не сказать переусложнённые, по своему устройству. Особенно это касается web. Фреймворки, grpc, Python/Go/JS/TS/Web Assembly etc, HTML5, CSS, Docker, Kubernetes и далее в бесконечность. Плюс современные методологии разработки ПО, типа Agile и иже с ними, заставляют выкатывать продукты в прод как можно быстрее, да ещё и так чтобы продукт понравился пользователю (то есть это наличие всяческих bells & whistles, чтобы заманить пользователя и прочих «плюшек» которые красиво выглядят, но жрут ресурсы как не в себя). Большинство плюёт на оптимизацию и вполне нормальным считается когда веб страничка весит мегабайты. А браузеры, которые должны всё это отображать, являются самыми тяжёлыми приложениями в ОС.

Всё вышеописанное может быть не так заметно, точнее не так осознаваемо людьми далёкими от айти, но, как ни странно, это начало раздражать самих айтишников. Программистов, админов, девопсов, да и просто людей, для которых компьютеры, электроника это хобби. И в результате, особенно в последнее время, стали происходить странные, на первый взгляд, вещи. Айтишники начали уходить в «андеграунд». По крайней мере в своих личных проектах. Как?
Сейчас посмотрим...
Всего голосов 62: ↑60 и ↓2+78
Комментарии73

Пора запретить рекламу, основанную на слежке

Время на прочтение7 мин
Количество просмотров5.9K
image

Многие годы гиганты интернет-индустрии пытались думать за нас. Они говорили, что им нужны наши данные, чтобы мы получали «адаптированную рекламу». В то же время они убеждали всех, что собирают информацию о нас для того, чтобы иметь возможность бесплатно предоставлять качественный сервис. К сожалению, многих людей они смогли убедить принять эти фальшивые правила игры.

Интересно, смогли бы они достичь того же, если бы честно говорили, что будут предлагать нам «рекламу, основанную на слежке», а не так называемую «адаптированную рекламу»?
Читать дальше →
Всего голосов 19: ↑14 и ↓5+10
Комментарии29

Windows must die

Время на прочтение4 мин
Количество просмотров70K
image


Об авторе: Joel — ИТ-журналист с 19-летним стажем и создатель Deep Space Nine Upscale Project (DS9UP).

Согласно заявлениям Microsoft, Windows 11 сделает существенный шаг назад по сравнению с Windows 10. В частности, Windows 11 Home теперь будет требовать как доступ к Интернету, так и учетную запись Microsoft для настройки ПК.

Скажу как рецензент — это требование смехотворно. Я регулярно создаю и уничтожаю тестовые прототипы. Я не хочу создавать одноразовые аккаунты и подключаться к интернету каждую итерацию. Если я пытаюсь протестировать поведение двух конкретных версий Windows, система, которая заставляет меня обновляться до последней версии в качестве условия установки, буквально мешает мне выполнять свою работу.

Однако я признаю, что у меня узкий нишевый случай. Хотя я нахожу эти ограничения раздражающими, они не являются проблемой для обычного пользователя ПК. И это не основная причина, по которой я не собираюсь пользоваться учетной записью Microsoft, чтобы использовать свой компьютер.

Компьютер — это не Интернет


Я готов смириться с тем фактом, что это может быть артефактом того времени, в котором я вырос. Для меня мой компьютер и «Интернет» — две совершенно разные вещи. Я подключаюсь к интернету, чтобы загружать файлы, читать новости и смотреть контент, но это лишь часть того, чем я занимаюсь на своем ПК. Использование онлайн-учетной записи для входа на мой ПК стирает разницу. Я признаю, что это мои личные проблемы, но для меня эта разница важна. На самом деле это очень важно. Я не хочу, чтобы моя локальная учетная запись Windows была синонимом онлайн-входа.

Но это не единственная моя причина.
Читать дальше →
Всего голосов 179: ↑155 и ↓24+171
Комментарии582

Проверка эффективности автотестов

Время на прочтение2 мин
Количество просмотров5.2K

Важно выстроить процесс работы с автотестами, требующими поддержки и особенно с нестабильными(flacky) тестами. Если сразу не уделять должного внимание к автотестам доверие к ним упадет и в конечном итоге упавшие тесты будут полностью игнорироваться

Обычно мы делаем это так:

Читать далее
Всего голосов 2: ↑1 и ↓1+1
Комментарии0

Я автоматизировал тестирование Dr. Web. А сможете ли вы?

Время на прочтение6 мин
Количество просмотров4.8K


Я никогда не пользовался Dr. Web. Я понятия не имею, как он устроен. Но это не помешало мне написать для него ряд автотестов (и лишь лень не позволила мне написать ещё сотню других):


  1. Тест на установку Dr. Web;
  2. Тест на ограничение доступа к съемным устройствам (флешкам);
  3. Тест на разграничение доступа к каталогу между программами;
  4. Тест на разграничение доступа к каталогу между пользователями системы (родительский контроль).

Такие и многие другие тесты можно клепать как горячие пирожки, и не только применительно к Dr. Web, и не только применительно к антивирусам. В этой статье я расскажу, как это сделать.

Всего голосов 9: ↑8 и ↓1+12
Комментарии7

Эффективное мышление — ментальное NZT

Время на прочтение8 мин
Количество просмотров12K

Хочешь мыслить как Эдди из "Областей тьмы"? И чтобы без NZT? Задавать вопросы, бьющие в самую суть? Извлекать из любой темы, любого обучения самую мякотку?Тогда эта статья для тебя, бро)).

Ключевая идея

"Чего не могу воссоздать, того не понимаю." Ричард Фейнман.

В основе продуктивного мышления лежит очень простая идея - понимание должно окупаться. Окупаемость - это когда понимание дает тебе возможность предсказать результат действия с какой-либо сущностью.

Применить NZT
Всего голосов 11: ↑5 и ↓6+2
Комментарии10

Windows 11 — новая Windows XP

Время на прочтение4 мин
Количество просмотров90K

20 лет назад Microsoft выпустил новую версию Windows со свежим пользовательским интерфейсом, построенном на технической базе, заложенной ее предшественником. Звучит знакомо, не так ли?

Послушайте, я знаю, что любой энтузиаст Windows, прочитавший этот заголовок, немедленно начнет критиковать его, а затем скорее всего предложит сравнивать Windows 11 с чем-то другим, более подходящим, по его мнению. Но все же, чем больше я думаю об этом, тем больше приходит на ум сравнение Windows 11 именно с Windows XP.

Читать далее
Всего голосов 49: ↑24 и ↓25+8
Комментарии376

Assembler. Установка интерпретатора и запуск первой программы через DOSBox

Время на прочтение4 мин
Количество просмотров61K

В данном курсе планируется разобрать основные особенности программирования на самой простой реализации assembler – TASM. Этих знаний лично мне вполне хватило, чтобы на отлично сдать ЭВМ в институте и закончить все лабораторные работы. Во многих уроках будет домашние задание по их мотивам.

Для начала давайте установим наш старенький компилятор.
Ссылка

Читать далее
Всего голосов 19: ↑11 и ↓8+7
Комментарии58

Может ли машина мыслить?

Время на прочтение4 мин
Количество просмотров8.5K
В ряде последних обсуждений по теме ИИ (1 и 2) возникла глубоко принципиальная дискуссия: умеют ли методы ИИ что-нибудь такое, что нельзя сделать детерминированными алгоритмами и «где же тут интеллектуальность»?
Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии72

Мотивация сотрудников: правила офисной дипломатии

Время на прочтение13 мин
Количество просмотров36K
В своей книге «Жизнь среди слонов» американский учёный-антрополог Д.-Г. Иэн рассказывает, как несколько лет провёл среди полудиких африканских аборигенов, погрузился в их образ жизни. Среди прочих автор делает очень ценный вывод: мы, современные цивилизованные люди, сами обременяем себя надуманными потребностями, которые исходят из пресловутого «приемлемого социального статуса». Хоть жизнь в джунглях и крайность, но она ярко показывает ту цену, которую мы платим за то, что иногда называют «тёплым стойлом».

Та же история происходит в сфере мотивации в офисной жизни: нам навязали какие-то шаблоны и правила, которым должны соответствовать компания и сам работник. Мотивация теряет свои очертания и уходит в крайности: например, на собеседовании могут рассказывать не про проект, а про роскошный офис и возможность поспать в рабочее время. Попробуем трезво оценить каждый элемент мотивации и разобраться, как стимулировать сотрудника работать честно и продуктивно.



Не то что бы мы так работали… Но уж больно хороша мотивация!
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии64

Незаменимых нет. 10 опасных конфликтов в бизнесе

Время на прочтение15 мин
Количество просмотров31K
Скажем прямо — бизнес иногда не заморачивается отношениями с персоналом и чётко разделяет вертикаль: есть топы, есть менеджеры среднего звена, есть рядовые сотрудники. И вовсе не обязательно топам слушать, чем живут сотрудники, а сотрудникам просить у топов каких-то мотивированных решений. Каждый делает свою работу на своём месте, компания живёт своей жизнью. Однако именно при таком раскладе копятся причины для типичных корпоративных конфликтов, которые могут значительно повлиять на работу компании, на её доходность и положение на рынке. Каждый такой конфликт бьёт по руководству и по сотрудникам одновременно, снижает степень доверия, рушит всё то, что в компаниях принято называть лояльностью, мотивацией и корпоративной культурой. Культура компании не в жарких корпоративах, она в умении оставаться людьми в любых условиях и уметь разговаривать вне зависимости от уровня руководителя и масштаба компании. 

Так на самом ли деле незаменимых нет? Кто начальник, кто дурак? И токсичен ли угрюмый Java-разработчик, пославший на три буквы продакт менеджера? 


Тысячи компаний, сотни тысяч сотрудников — а грабли у всех одинаковые
Читать дальше →
Всего голосов 20: ↑18 и ↓2+26
Комментарии17

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Время на прочтение8 мин
Количество просмотров286K
image

Хорошему программисту необходимо уметь совмещать свои навыки со здравым смыслом. Все дело в прагматизме и навыке выбора лучшего решения для вашей проблемы. Когда вы сталкиваетесь с проблемой при разработке ПО, вы можете воспользоваться базовыми принципами, которые помогут в выборе самого правильного подхода.

В этом тексте приводится набор принципов, которые должен знать любой разработчик, и которые следует периодически освежать в памяти. Считайте их своим секретным оружием при программировании.

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

Этот принцип прост и очевиден, но ему далеко не все следуют. Если пишете код, то будьте уверены, что он вам понадобится. Не пишите код, если думаете, что он пригодится позже.

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+16
Комментарии10

Компьютеры, какими я их любил

Время на прочтение7 мин
Количество просмотров33K
image

Я много лет боролся с проблемой синхронизации файлов. В самом начале Dropbox был отличным сервисом, но в последние несколько лет они начали разрастаться. Я перешел на iCloud, но это было еще хуже. Наконец, несколько дней назад, после того, как iCloud снова загадочно сломался, я решил, что пора попробовать что-то другое.

Я попробовал Syncthing, бесплатную альтернативу с открытым исходным кодом. И знаете, что? Это стало освобождением. Разумность, простота, надежность, различные функции. Это приносит радость от использования и заставляет поверить в то, что распад цивилизации можно немного замедлить.

Синхронизация — это все, что я любил в компьютерах.

Удивительно, насколько замечательными могут быть продукты, созданные для компьютеров, когда их производителям не нужно заниматься корпоративной ерундой, не нужно продвигать бренд или продавать его пользователям. Честно говоря, я почти перестал верить, что это все еще возможно. Но это возможно.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+64
Комментарии81
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность