Pull to refresh
3
0
Send message

Зачем знать индустрию, в которой работает твоя компания?

Reading time8 min
Views3.1K

Всем привет!

Неоднократно сталкивался в ИТ-сообществе с мнением, что разработчикам бы работу работать, а не “вот это вот все”. Под “этим всем” скрываются видео и круглые столы от менеджмента, разъясняющие стратегию компании, полезные тренинги от HR, всякая социальная активность типа бейджиков на корпоративном портале, и конечно же, понимание сферы бизнеса - индустрии, в которой работает компания.

Максимум на что готовы многие коллеги по сфере ИТ - понятные им исследования поведения юзеров с помощью A/B или UX тестирования и прочей бигдаты (не к ночи будь помянута :)). То есть, цифры.

Вопрос в том, а можно ли качественно выполнять свою работу, не понимая, что (а точнее, кто) за этими цифрами скрывается? Какие в индустрии правила игры? Чего ждут от компании-лидера? Какие фичи стоит приоритизировать, а на какие не стоит тратить сил и времени? Почему этот коммерческий директор так настойчиво уже год пушит эту непонятную доработку???

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

В статье ниже буду рассказывать, как команда управления знаниями решает эту задачу, и почему это вообще лежит в зоне ответственности knowledge management.

Читать далее

Эффективный Django. Часть 1

Reading time14 min
Views303K

Представляю вам перевод статей о Django с сайта effectivedjango.com. Наткнулся я на этот сайт во время изучения данного фреймворка. Информация размещенная на этом ресурсе показалась мне полезной, но так как нигде не нашел перевода на русский, решил сделать сие доброе дело сам. Этот цикл статей, как мне думается, будет полезен веб-разработчикам, которые делают только первые шаги в изучении Django.
Приступить к чтению

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →

Clean Architecture глазами Python-разработчика

Reading time10 min
Views33K
Привет! Меня зовут Евгений, я Python-разработчик. Последние полтора года наша команда стала активно применять принципы Clean Architecture, уходя от классической модели MVC. И сегодня я расскажу о том, как мы к этому пришли, что нам это дает, и почему прямой перенос подходов из других ЯП не всегда является хорошим решением.


Читать дальше →

Быстрорастворимое проектирование

Reading time25 min
Views45K
Люди учатся архитектуре по старым книжкам, которые писались для Java. Книжки хорошие, но дают решение задач того времени инструментами того времени. Время поменялось, C# уже больше похож на лайтовую Scala, чем Java, а новых хороших книжек мало.

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

Эта статья является расшифровкой моего доклада с конференции DotNext 2018 Moscow. Кроме текста, под катом есть видеозапись и ссылка на слайды.


Читать дальше →

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views702K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Рендеринг на сервере и HTMX — это будущее

Level of difficultyMedium
Reading time14 min
Views43K

Современная ситуация с разработкой веб-приложений


Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.

Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Читать дальше →

Олдскульные HTML-шаблоны снова в моде! htmx и другие средства борьбы с javascript fatigue

Reading time4 min
Views12K

Отрисовка страничек на сервере, похоже, снова начинает приобретать популярность (нет, я не имею в виду React SSR).

Сторонники оппозиции растущему влиянию javascript, наконец, смогли направить усилия в нужное русло - и в результате родился фреймворк htmx! Поговорим о том, как он работает, а также, какие ещё фреймворки используют серверные шаблоны в 2022.

Также поговорим о divkit - аналоге html для мобилок, недавно выпущенный Яндексом в опен-сорс - Вы, наверно, догадались, какое отношение может иметь одно к другому.

Читать

Введение в Data Parallel C++. Пишем первую программу

Reading time7 min
Views12K


Перед вами введение в программирование на языке Data Parallel C++ или, коротко, DPC++. DPC++ основан на Khronos SYCL — это означает, что перед нами модель современного параллельного программирования. Новейшим текущим стандартом Khronos является SYCL 1.2.1, хотя предварительная спецификация SYCL 2020 уже доступна для изучения. Intel и другие участники рабочей группы SYCL в настоящее время занимаются финализацией следующей версии спецификации. DPC++ содержит расширения, которые облегчают использование SYCL, при этом многие из них, как ожидается, войдут в состав SYCL 2020. Внедрение таких расширений в компилятор DPC++ помогает сообществу оценить их эффективность заранее перед стандартизацией.
Читать дальше →

К вопросу об импортозамещении

Level of difficultyEasy
Reading time10 min
Views18K

История это началась еще в стародавние времена (в начале 2022 года), когда импортозамещение электроники не было столь востребовано, и воспринималось скорее, как непонятная прихоть начальства, нежели как насущная необходимость. Делали мы клавиатуру для применения в изделиях специального назначения, как положено, подали перечень ЭКБ импортного производства для утверждения, получили заключение о наличии отечественных аналогов, в общем, все, как всегда.

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

1) Их было больше всего в устройстве (50+ штук), так что мы могли сразу заместить почти 80% компонентов
2) Не ожидалось особых проблем, «ну уж диоды то у нас, наверное, могут сделать».

Те, кому интересно узнать, чем кончилось, могут нажать кнопку «Читать далее», для остальных спойлер – кончилось плохо

Читать далее

C/C++ из Python (ctypes)

Reading time6 min
Views68K
main

Про то как вызывать Python из C написал в прошлой статье, теперь поговорим как делать наоборот и вызывать C/C++ из Python3. Раз начал писать об этом, то раскроем всю тему до конца. Тем более, что ни чего сложного здесь нет тоже.

Читать дальше →

Сравнение производительности GPU-расчетов на Python и C

Reading time7 min
Views61K

Python обладает рядом привлекательных преимуществ к которым относится простота реализации программных решений, наглядность и лаконичность кода, наличие большого числа библиотек и многочисленного активного комьюнити. В то же время, известная всем медлительность питона часто ограничивает его применимость для “тяжелых” вычислений. Для ряда задач можно добиться существенного ускорения расчетов путем использования технологии CUDA для параллельных вычислений на GPU. Цель этого небольшого исследования — анализ возможностей эффективного использования python для расчетов на GPU и сравнение производительности различных python-решений с реализацией на C.
Читать дальше →

Python (+numba) быстрее Си — серьёзно?! Часть 1. Теория

Reading time7 min
Views84K

Давно собирался написать статью о numba и о сравнении её быстродействия с си. Статья про хаскелл «Быстрее, чем C++; медленнее, чем PHP» подтолкнула к действию. В комментариях к этой статье упомянули о библиотеке numba и о том, что она магическим образом может приблизить скорость выполнения кода на питоне к скорости на си. В данной статье после небольшого обзора по numba (часть 1) чуть более подробный разбор этой ситуации (часть 2).


Читать дальше →

Домен, поддомен, ограниченный контекст, пространство задач/решений в DDD: четко определены

Reading time6 min
Views13K

Domain-Driven Design — это, как правило, подход к проектированию систем программного обеспечения, который предполагает создание общего языка между экспертами домена и разработчиками системы. В число известных правил DDD входят Use a Ubiquitous Language и Make The Implicit Explicit.

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

Данная статья подготовлена в результате длительной беседы на github с участием многих представителей сообщества DDD. Спасибо всем участникам этого диалога за сотрудничество.

Читать далее

О планировании. Сон. Воля. Самодисциплина. Принципы

Level of difficultyEasy
Reading time24 min
Views39K

Эта статья будет про какие-то наиболее общие соображения, которые могут помочь вам в упорядочивании своей жизни. В ней не будет каких-то конкретных приёмов (разве что за исключением советов про режим сна). Скорее статья просто подольёт немного огонька в ваш мозг, чтобы спровоцировать его на рождение каких-то ещё идей о том как себя можно приручить. Возможно это статья хорошо подойдёт студентам, т.к. в ней будет объёмный пример про эффективную жизнь в университете.

Я и так знаю всё это, но всё же прочитаю

Полупроводниковая монополия: как одна голландская компания держит под контролем мировую индустрию микросхем

Level of difficultyEasy
Reading time13 min
Views46K

Сегодня основой экономики являются микрочипы. Почти во всех электронных устройствах присутствует по крайней мере один полупроводниковый чип: от автомобилей и мобильных телефонов до стиральных машин и самолётов. Большая часть мирового ВВП производится устройствами, использующими полупроводники. Из-за своей повсеместной распространённости и полезности они также являются стратегически важными: США и Китай стремятся контролировать поставки и получить преимущество одного над другим.

Существует несколько основных компаний-производителей микрочипов. Есть Samsung в Южной Корее, TSMC на Тайване, Huawei в Китае, а также Intel и Texas Instruments в США. Все они производят чипы на собственных фабриках. Но машины, которые они используют для производства, производятся в основном одной компанией — голландской Advanced Semiconductor Materials Lithography (ASML).

Технология, которая делает возможным производство всех передовых чипов называется литографией в крайнем ультрафиолете (EUV). Одна EUV-машина стоит более 200 миллионов долларов. Она опирается на цепочку поставок, состоящую из более чем 800 других компаний, на доставку сотен тысяч деталей со всего мира. Многие из этих компаний существуют только благодаря одному клиенту – ASML.

Сложность как технологии, так и цепочки поставок даёт ASML сильное конкурентное преимущество. Время и затраты, которые потребуются конкуренту для воспроизведения всего процесса изготовления одной машины EUV-литографии, создают очень высокие барьеры для входа. На протяжении многих лет ASML позиционировала себя как практически единственного поставщика этой передовой технологии, которая произвела революцию в массовом производстве чипов. И поэтому в течение следующих нескольких десятилетий ASML сохранит свою монополию.
Читать дальше →

Дефективное управление временем

Level of difficultyEasy
Reading time7 min
Views25K

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

Потратить время

Люди не понимают ООП

Level of difficultyMedium
Reading time15 min
Views121K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

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

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →

Туториал по Unreal Engine. Часть 6: Анимация

Reading time11 min
Views140K
image

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

К счастью, Unreal позволяет быстро и удобно анимировать персонажей!

В этой части туториала вы научитесь следующему:

  • Импортировать меш со скелетом
  • Импортировать анимации
  • Создавать Animation Blueprint для переходов между разными анимациями
  • Выполнять плавные переходы анимаций
Читать дальше →

Вам не нужен для этого JavaScript

Level of difficultyMedium
Reading time11 min
Views29K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity