Pull to refresh
16
Karma
-1
Rating
Валерий @rookie_cruekie

Программист

  • Followers 19
  • Following 2
  • Posts
  • Comments

UML умер, а никто и не заметил?

VDSina.ru corporate blogWebsite developmentSystem Analysis and Design
Translation

UML, нам будет тебя не хватать

Unified Modelling Language (UML), разработанный Rational Software и принятый в качестве стандарта Object Management Group (OMG) в 1997 году, призван был стандартизировать множество различных типов графических нотаций, принятых в отрасли разработки ПО.

Моя история отношений с UML началась почти десяток лет назад, когда я стал евангелистом этого языка как моста между ИТ и бизнесом. Я никогда не был полностью убеждён в ценности UML как нотации для моделирования конкретных программных продуктов; моя цель заключалась в использовании UML для описания требуемых структурных и поведенческих свойств, ожидаемых от проектируемой системы.
Читать дальше →
Total votes 79: ↑72 and ↓7+65
Views49K
Comments 183

Flutter Flavoring in a breeze

Development for iOSDevelopment for AndroidFlutter
Tutorial

Хотелось ли вам иметь несколько версий одного приложения?

Чтобы одной командой вы могли собрать приложение под определенное окружение?

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

Всем привет!

Меня зовут Андрей!

И в этой статье я расскажу, как настроить сборку приложения для разных окружений.

Читать далее
Total votes 9: ↑7 and ↓2+5
Views2.5K
Comments 1

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

Popular scienceBiotechnologiesHealth

Сегодняшний пост (что не вполне обычно для моего блога) не претендует на научную достоверность и во многом является попыткой резюмировать мысли на тему, обозначенную в заголовке. Основным материалом, побудившим меня к написанию этого поста, стал текст уважаемого Дмитрия Тюлина «Старение и бессмертие: взгляд биолога», а также дискуссия под ним. Также меня заинтересовала статья Николая Мушкамбарова о биологии мейоза, на которую ссылается Дмитрий Тюлин. Этот материал натолкнул меня на две линии размышлений и выводов, которыми я хочу здесь поделиться.

Читать далее
Total votes 40: ↑35 and ↓5+30
Views13K
Comments 94

5 фразовых глаголов с get и 33 их значения, или Почему студенты не любят английский

EnglishDom corporate blogLearning languages

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

Мы решили запустить новую рубрику и рассказывать про фразовые глаголы весело. Чтобы не зубрить их, а нормально запоминать на примерах из фильмов и сериалов.

И начнем со слова «get». По нашему опыту, студенты делают во фразовых глаголах с ним огромное количество ошибок. Так что не будем затягивать, поехали!

Читать далее
Total votes 32: ↑22 and ↓10+12
Views66K
Comments 20

Лучшие оптические иллюзии 2020

Image processingPopular scienceBrain
image


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

Канал в телеграм Cognitive Illusions, где я буду делиться самыми вырвиглазными находками, как хакнуть мозг через восприятие.
Читать дальше →
Total votes 52: ↑41 and ↓11+30
Views20K
Comments 17

1 год с Flutter в продакшне

Development of mobile applicationsDartFlutter
Translation

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

Читать далее
Total votes 25: ↑25 and ↓0+25
Views13K
Comments 43

Все, что вам нужно знать о маршрутизации между страницами Flutter

OTUS corporate blogDevelopment of mobile applicationsDevelopment for AndroidFlutter
Translation

В Winkl, когда мы начали играть с анимацией, мы поняли, что переход на страницу может действительно сделать ваш пользовательский интерфейс красивым. Если вы хотите иметь слайд-переход, как IOS вы используете CupertinoPageRoute. Вот и все, ничего больше.

Но для пользовательского перехода Flutter предоставляет различные виджеты перехода. Давайте посмотрим, как мы можем их использовать.

Читать далее
Total votes 14: ↑11 and ↓3+8
Views2.9K
Comments 5

Всего лишь меняем модель эмулятора Android устройства

Development of mobile applicationsDevelopment for AndroidReverse engineeringMobile applications testingFlutter
Sandbox

Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 4пда, рутить свой сенсорный самсунг, менять содержимое файла build.prop и показывать наивным ламерам свой iPhone 15+ Max Pro. Однако, как оказалось, и как оно часто бывает, не все так просто и здесь есть свои подводные камни. Статья призвана помочь простым работягам избежать все кочки да ямы на пути к своей цели!

Поменять модель эмулятора
Total votes 13: ↑10 and ↓3+7
Views4.8K
Comments 0

Используйте парсинг вместо контроля типов

VDSina.ru corporate blogProgrammingFunctional Programming
Translation


В 2019 году была написана потрясающая статья Parse, don’t validate. Я крайне рекомендую изучить её всем программистам (а также недавнее дополнение к ней Names are not type safety). Её основная идея заключается в том, что существует два способа проверки валидности входящих данных функции:

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

Главное утверждение, сделанное в этой статье — что парсеры предпочтительнее, чем валидаторы. Её основной посыл — нужно сделать недопустимые состояния непредставимыми (unrepresentable). В статье это реализовано с помощью использования системы типов. Я полностью согласен с такой философией, но хотел бы выделить и более подробно обсудить один из ироничных аспектов аргументации:

Инструмент контроля типов является хрестоматийным примером валидатора!

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

Какой же может быть альтернатива инструменту контроля типов в виде парсера для языка программирования?
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Views9.1K
Comments 4

Constraint Programming или как решить задачу коммивояжёра, просто описав её

PythonProgrammingArtificial Intelligence
Translation
Tutorial

Пожалуй, наиболее популярной парадигмой программирования является императивное программирование, но это не единственный вид программирования, широки известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель) найдет решение для вас (или скажет, если их нет). Впечатляет не правда ли? Мне кажется, каждый программист должен знать о такой возможности.

Read more
Total votes 14: ↑14 and ↓0+14
Views5.6K
Comments 7

Учимся писать информативные комментарии к GIT-коммитам используя общепринятую семантику

OTUS corporate blogProgrammingGitSoftware
Translation

Когда я только знакомился с системами контроля версий (особенно с git), я рассматривал их только как приложения, которые помогают мне хранить историю изменений моего кода. Т.е. когда случается что-то нехорошее, я могу просмотреть историю коммитов и вернуться к последнему «хорошему» состоянию кода в моем репозитории.

Но когда я начал более плотно использовать их в своей работе, я понял, что их функция шире, чем просто контроль версий, это также инструмент совместной работы, где вы описываете свою историю взаимодействия с репозиторием и делитесь ею с другими разработчиками. Именно тогда я узнал, что хорошие комментарии к коммитам (commit message) могут значительно улучшить ваше взаимодействие с другими членами команды (и не только).

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

Читать далее
Total votes 23: ↑20 and ↓3+17
Views12K
Comments 34

MarkedText — маркдаун здорового человека

SemanticsPerfect codeDesigning and refactoringHTMLUsability

Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактирование таблиц - это вечная пизанская башня из вертикальных линий. Короче, есть у него проблемы как с удобством редактирования, так и с наглядностью представления. Так что давайте попробуем спроектировать его с нуля, не таща за собой килотонны головоломных конструкций.

Поехали..
Total votes 91: ↑72 and ↓19+53
Views22K
Comments 154

Мама, я хакер: пробуем вскрыть приложение на Flutter

Liga Stavok corporate blogDartFlutter
Sandbox

RFC 1983

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

Читать далее
Total votes 18: ↑17 and ↓1+16
Views8.3K
Comments 3

Написание Dockerfile. Лучшие практики

Timeweb corporate blogDevOps
Translation
Публикуем новый перевод и надеемся, что рекомендации автора помогут вам оптимизировать образ Docker.

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



Если вы новичок в Docker, можете выбрать шаблон (базовый образ) и определить свои инструкции (команды Dockerfile), чтобы разместить свой код внутри образа и запустить его.

Простота Docker будем помогать вам в работе с самого начала его использования, а навык его оптимизации приходит с опытом и обычно требует времени.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Views9K
Comments 10

Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации

Development for Android

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Views5.8K
Comments 2

Flutter под капотом: Owners

Surf corporate blogProgrammingDevelopment of mobile applicationsDartFlutter
Всем привет! Меня зовут Михаил Зотьев, я Flutter-разработчик и тимлид в Surf.

Продолжаю серию материалов о внутреннем устройстве работы Flutter:

  1. Flutter под капотом
  2. Flutter под капотом: Binding
  3. Flutter под капотом: Owners > Вы находитесь здесь

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

Если вам больше нравится видеоформат, то совсем скоро вы сможете посмотреть на эту тему мой доклад, с которым я выступил на DartUp 2020. Он объединяет и обобщает материал всех трёх статей вместе. Ссылка на доклад.


Читать дальше →
Total votes 13: ↑12 and ↓1+11
Views3.6K
Comments 2

Как мы случайно сожгли $72 000 за два часа в Google Cloud Platform и чуть не обанкротились

Google Cloud PlatformCloud services
Translation


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

В марте 2020 года, когда COVID поразил весь мир, наш стартап Milkie Way тоже сильно пострадал и почти закрылся. Мы сожгли 72 000 долларов во время изучения и внутреннего тестирования Cloud Run с Firebase в течение нескольких часов.
Читать дальше →
Total votes 84: ↑76 and ↓8+68
Views80K
Comments 196

Кунг-фу стиля Linux: превращение веб-приложений в полноценные программы

RUVDS.com corporate blogConfiguring LinuxSystem administration
Translation
Мне неприятно это признавать, но я, на самом деле, больше не работаю в Linux на настольном компьютере. С технической точки зрения я, всё же, пользуюсь Linux. Но 95% своих дел я делаю в Chrome. Среди обычных приложений, которые я ещё применяю, остались лишь инструменты разработки, командная оболочка, emacs и GIMP. А если бы мне было очень надо, то я, возможно, нашёл бы браузерную замену всем этим программам. Почтовый клиент? Gmail. Ведение блога? WordPress. Заметки? OneNote или Evernote. Хорошо бы запускать это всё в виде полноценных приложений, а не открывать во вкладках браузера. Сегодня я расскажу о том, как это сделать.


Читать дальше →
Total votes 55: ↑44 and ↓11+33
Views12K
Comments 17

Объявление о бета-тестировании null-safety Dart. Начало процесса миграции пакетов в надежное и безопасное состояние

Wrike corporate blogWebsite developmentProgrammingDartFlutter
Translation


Безусловно, null-safety — важный шаг в развитии языка. Команда Dart анонсировала бета-релиз версии с null-safety! Мы перевели на русский новость об этом релизе, в котором вы узнаете, как мигрировать на новые версии, какие преимущества получите, и в чем польза null-safety для всех нас.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Views2.3K
Comments 5

Обязательно ли назначать на должность Тимлида Старшего разработчика?

Development ManagementPersonnel ManagementIT career

Введение.


В данной статье был проведен анализ рынка тимлидов и он показывает, что 63% компании закрывают позицию на должность тимлида внутренними сотрудниками, а 23% компании закрывают как внутренними, так и внешними сотрудниками.


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


На плечи тимлида ложатся новые обязанности, например как мотивировать ребят; составлять индивидуальный план развития; проводить встречи один на один; решать проблемы (разные); жонглировать задачи между разработчиками, чтобы младшие (Junior) программисты росли, а более опытные ребята не перегорали; вносить систематические изменения в рабочие процессы; еще и с бизнесом находить общий язык. И очень много дел планировать. Но за свою карьеру становления старшим разработчиком, он не получил данных навыков, и скорее всего не уделял времени для их развития.

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Views5.1K
Comments 10

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity