Как стать автором
Обновить
31
0
Егор @seweb

Пользователь

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

Kademlia (DHT) — практическое руководство

Время на прочтение 8 мин
Количество просмотров 15K
Речь пойдет о DHT на примере ее реализации известной под названием Kademlia. DHT переводится как распределенная хеш таблица и предназначена для построения децентрализованной сети обмена информацией. Все ниже изложенное работает в клиенте для ED2K сетей для платформы Android и в виде демона на линуксе. Детали реализации ниже.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 16

Обработка ошибок в C

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


Введение


Ошибки, увы, неизбежны, поэтому их обработка занимает очень важное место в программировании. И если алгоритмические ошибки можно выявить и исправить во время написания и тестирования программы, то ошибок времени выполнения избежать нельзя в принципе. Сегодня мы рассмотрим функции стандартной библиотеки (C Standard Library) и POSIX, используемые в обработке ошибок.
Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Комментарии 41

Организованный фриланс. Часть 1

Время на прочтение 5 мин
Количество просмотров 66K
В данной статье я хотел бы поделиться собственным опытом создания компании, не обремененной месторасположением. Лично мы называем это организованный фриланс.

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

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

В-третьих, вся работа выполняется сдельно, существуют премии, бонусы, но не оклады, что заставляет участников команды быть заинтересованными в высоких результатах, в больших объемах работы.
Читать дальше →
Всего голосов 41: ↑36 и ↓5 +31
Комментарии 30

Принципы работы одного Python-разработчика

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

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

Принципы условно сгруппированы в три группы: принципы принятия решений; принципы, направленные на повышение качества кода; принципы, направленные на повышение производительности кода.

  • Принятие решений
    • Любое техническое решение должно быть обосновано
    • Ответственность за принятое решение всегда лежит на том или тех, кто принял данное решение
    • При принятии технических решений необходимо учитывать их действие во времени и их соответствие потребностям бизнеса
    • Одним из основных критериев при принятии технических и иных решений должна быть их наибольшая эффективность
    • Смело отступать от правил, методологий, шаблонов и прочих ограничений, если эффект от такого отступления превышает возможные потери (Special cases aren't special enough to break the rules, although practicality beats purity)
    • При необходимости сделать работающее, но, возможно, не наилучшее, решение сразу, а позднее улучшить его (Now is better than never, although never is often better than *right* now)
    • Если сложно выбрать между двумя альтернативными техническими решениями, то нужно выбрать любое и двигаться с ним дальше, когда появится больше инфорации, то можно будет сделать рефакторинг, если решение оказалось неоптимальным
    • Гибкость технических решений крайне желательна, а универсальность не обязательна
  • Качество исходного кода
    • Качество кода следует оптимизировать на базе сформированной системы критериев, сбалансированной по отношению к затратам в краткосрочном и долгосрочном периодах
    • Писать оптимальный код сразу, если это не увеличивает его сложность и сроки разработки (Beautiful is better than ugly)
    • Самодокументируемый код имеет приоритет над хорошо прокомментированным (Beautiful is better than ugly)
    • Писать TODO и FIXME в коде
    • Давать переменным, функциям, методам, классам и другим объектам исходного кода имена точно отражающие их назначение, несмотря на увеличение длины названий (Explicit is better than implicit)
    • Меньшее число строк и объем кода предпочтительнее, при сохранении прежней читабельности кода (Simple is better than complex)
    • Применять инспекцию кода (code review) как инструмент обнаружения ошибок, выравнивания стиля разработки, знакомства с чужим кодом и обучения в команде
    • Применять повторное использование своего и чужого кода
    • Использовать специализированные библиотеки для решения конкретных задач, вместо разработки своего аналогичного кода
  • Производительность
    • Производительность разработки кода имеет приоритет над производительностью исполнения кода
    • Оптимизация производительности исполнения кода должна быть обоснована соответствующей потребностью
    • Оптимизация производительности исполнения кода должна выполняться за счет устранения наиболее серьезных узких мест
    • В первую очередь должны быть использованы наиболее эффективные методы оптимизации производительности исполнения кода

Далее дано развернутое пояснение каждому из перечисленных принципов. Для некоторых принципов в круглых скобках указанны постулаты Zen of Python, которые на мой взгляд имеют отношение к данным принципам, либо их частям.
Читать дальше →
Всего голосов 43: ↑24 и ↓19 +5
Комментарии 4

Как улучшить свой стиль программирования?

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

Исповедь 1


Я — разработчик. От своих работодателей я постоянно слышу, что работаю медленно и часто всё усложняю без веской причины. И что мне пора бы что-то с этим сделать. Во избежание.

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Всего голосов 235: ↑202 и ↓33 +169
Комментарии 248

Мультитест мультиварок: что купить IT-шнику, если хочется плова и борща

Время на прочтение 33 мин
Количество просмотров 165K
Нам неоднократно поступали предложения о тестировании мультиварок, но до определенного времени мы от них отказывались — ну что такого можно рассказать о мультиварке. Однако, предложения продолжали поступать, и примерно после 5-6 письма редакция Box Overview задумалась, и решили сделать не просто тест одной мультиварки, а глобальное тест-сравнение 8 мультиварок нижнего ценового сегмента от разных брендов.

image

В нашем тесте участвуют 8 мультиварок от компаний Vitek (VT-4209), Kitfort (KT-201), Scarlett (SL-MC411S01), Polaris (PMC 0527D), Rolsen (RMC-5500D), Redmond (RMC-250), Philips (HD2173) и Panasonic (SR-MHS181).

Мы не будем рассказывать вам о дизайне — его можно посмотреть на фотографиях, не будем уточнять наличие контейнера для сбора конденсата — в него он попадает лишь в редких случаях, мы не будем говорить о «эффекте русской печи» и прочей маркетинговой шелухе, которую так любят продавцы.
Мы расскажем о более интересных вещах — об удобстве управления, о качестве рецептов из комплекта, о физической и химической стороне процесса приготовления, о типах антипригарных покрытий, о реальном, а не маркетинговом функционале и о том, что у мультиварок внутри.
Под катом много картинок, фотографий плова и борща, физический и химический ликбез и geek-porn
Всего голосов 382: ↑363 и ↓19 +344
Комментарии 244

Топ-10 книг для понимания устройства фондового рынка

Время на прочтение 4 мин
Количество просмотров 313K
Современный фондовый рынок – это масштабная и довольно сложная область знаний. Новичкам бывает не просто разобраться во всех хитросплетениях отношений, которые возникают между людьми, когда они оказываются на бирже, и освоить азы интернет-трейдинга. В то же время, и многие инвесторы, которые уже ведут активную деятельность, не обладают достаточным набором базовых знаний. В нашем сегодняшнем топике – список книг, которые помогут усвоить базовые понятия фондового рынка (да и вообще финансовой области) новичкам и позволят более опытным трейдерам расширить кругозор и углубить свои знания.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 7

Информация

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