progway — программирование, IT
2.65K subscribers
25 photos
1 video
246 links
Чат: @prog_way_chat

Разборы вопросов и задач с собеседований, мысли, полезные материалы и просто вещи, что мне интересны из мира IT

Полезности и навигация в закрепе

По всем вопросам: @denisputnov
Download Telegram
О Futter в целом:
Всё время, сколько я занимаюсь программированием, я помню себя человеком вечно смотрящим что-то, проходящим курсы и изучающим что-то новое.
Последние же дни я трачу на изучение Dart/Flutter тучи времени, и тут я хочу объяснить почему именно он:

1. Конечно же кроссплатформенность.
Flutter фреймворк позволяет создавать нативные кроссплатформенный приложения. Что это значит? Один и тот же код может запуститься как на Android, так и на iOS. Один Flutter-разработчик покрывает задачи сразу двух людей - разработчиков под эти две системы, что выгодно как экономически, так и организационно. Не нужно согласовывать действия разных команд, это значительно ускоряет разработку.

2. Собственная виртуальная машина.
Flutter реализует собственную виртуальную машину на языке Dart, что по моему мнению - главный аргумент в пользу этой технологии. Разработка идёт в разы быстрее. При работе с Dart VM после каждого изменения НЕ нужно компилировать весь проект с нуля, ведь виртуалка просто подменяет измененный файл в готовом скомпилированном проекте. Как результат, все изменения видны в эмуляторе за 5 секунд, чем тот же Kotlin похвастаться не может. Ему нужно полностью компилировать приложение заново после каждого изменения. Так и получается, что со среднем временем компиляции в 2 минуты (что достаточно быстро, обычно время больше) на 100 изменений в коде Flutter-разработчик посмотрит уже через 8 минут, а вот разработчик на Kotlin - чуть более чем через 3 часа.

3. Большие возможности из коробки и собственный графический движок Skia.
Flutter предлагает разработчикам какое-то немыслимое количество встроенных функций. Уже готовые меню, навигационные окна, поля ввода/вывода, декларативно-реализуемые виджеты прокрутки и сотни разных иконок - вот что такое Flutter. И почему-то не получается говорить об этом без восхищения, инструментарий и правда огромен.
А что если вам его не хватает? Есть Skia! Google купила его ещё в далёком 2005, а теперь это очень сильный и производительный движок для отрисовки UI на всех платформах. Помимо того, что движок отлично справляется с отрисовкой интерфейса (с оговоркой на ограничение в 60 fps max) в Flutter реализована поддержка инструментов Skia, благодаря чему, например, вы можете отрисовать логотип приложения/компании на системном уровне, а не просто загрузить его в качестве asset'а.

4. Flutter - это не только mobile.
Даже для многих знакомых с Flutter людей становится открытием тот факт, что существует так же Flutter-Web и Flutter-Desktop. Такой же декларативный подход, такой же огромный встроенный функционал, но уже в ваших браузерах и локально!

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

#mobile
🔥1
Слишком много было про codeye, сегодня поговорим про ботов.

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

У ботов есть очевидное преимущество - они более легкодоступны и интуитивны, чем мобильные приложения. В то время, как основной конкурент чат-ботов требует лишних манипуляций, сами чат-боты базируются на уже готовых платформах, будь то Telegram, Discord, What's App, VK или MailAgent (даже такое практикуют, ужас). Самыми развитыми платформами на данный момент являются конечно же VK и Telegram - они предлагают наибольший функционал, более стабильные и удобные API, чем конкуренты.

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

НО, это не значит "все бежим делать чат ботов". Развитие чат-ботов никогда не вытеснит приложения с рынка, но потеснить их вполне в силе. Приложения всё так же актуальны для крупных проектов, когда, например:
- необходим графический интерфейс для взаимодействия с программой (напр. фоторедакторы, навигатор и тд);
- есть потребность в полном взаимодействии с файлами устройства (органайзеры вызовов, сообщений, другого медиа);
- если речь идёт о стриминговом сервисе (представьте Spotify или YouTube как бота в Telegram, даже звучит смешно);
- требуется сложная система авторизации (банковские приложения);
- необходима сложная система фильтрации (напр. приложение интернет-магазина типа aliexpress, avito, wildberries и тд);
- ну и так далее.

Тут конечно же не все примеры, а только те, что первыми пришли в голову.

Как итог, помните, что каждая задача имеет своё решение. Чат-боты прекрасны, и они идеальны для несложного взаимодействия условно типа «вопрос/ответ», а приложения идеальны в более сложных и объемных задачах. Лично я считаю именно так и не отношу себя ни к одной из категорий людей, что описал выше. Но, конечно же, чат-ботов я обожаю.

Кстати, кто не знал, у меня есть два своих:

На данный момент отключены по техническим причинам, скоро будут включены снова!
@pyInfoParserBot - курсы валют и информация о коронавирусе,
@about_chat_bot - техническая информация о чате, что очень часто нужна разработчикам.

#mobile #chatbot
🔥1
Figma и разработка дизайна.

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

Но не в этом суть! Хочу рассказать о Figma. Этот инструмент мне казался очень популярным, но как оказалось, для некоторых людей это просто откровение.

Я использую Figma во всех своих проектах - начиная от разработки сайтов и заканчивая дизайном приложений. Мой стаж работы в Photoshop и Illustrator на данный момент - 6 лет, что огромная цифра для моего возраста (а я напомню, что мне 19). За эти 6 лет я успел закончить более 2 тысяч работ, выполнить десятки заказов на фрилансе, посотрудничать с крупными блогерами, и как бы я не любил этот инструмент, сейчас я всё сильнее отказываюсь от него и перехожу в Figma. Но почему?

1. Лаконичность инструментов и простота.
Мне явно есть с чем сравнить и я могу сказать, что тут Figma далеко впереди. Интерфейс не перегружен, но при этом есть все самые необходимые инструменты, которых хватает в 99% случаев. Интерфейс программ Adobe перегружен. Да, функций действительно больше и они достаточно полезны в некоторых ситуациях, но разработчикам UI эти инструменты просто не нужны.

2. Удобный экспорт.
Удобный экспорт - это что-то, люди с опытом меня поймут. В то время, как в Figma экспорт футажа проходит в 3 клика, в продуктах Adobe с этим огромные проблемы, о которых даже зарекаться страшно. Без перебирания всех слоёв экспортировать отдельный объект на столько удобно, как в Figma, просто невозможно.

3. Figma бесплатен.
Может и не очень актуально в потребительском секторе СНГ, но всё же, например, для бизнеса это очень серьёзный удар. Тут без комментариев.

4. Совместная работа.
Над одним проектов в едином поле может работать сразу несколько дизайнеров. Это очень удобно, в разы ускоряет процесс разработки и скорость обмена информацией.

5. Встроенная система контроля версий.
Можно посмотреть кто, когда и как что-то изменил в проекте.

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

7. Удобная браузерная версия, она прекрасна.
Ничем не отличается от Desktop версии, потребляет мало ресурсов. Идеально, в общем-то.

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

#web #mobile #progress #design
🔥1
Зачем нужен json.

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

Итак, json - это формат передачи данных. Многие связывают его исключительно с JavaScript и WebDev, но в современном мире это далеко не так. Многие языки способны обрабатывать json и имеют для этого встроенные функции/модули. Например в Python есть встроенный пакет json, который позволит вам легко обработать этот формат и, например, перевести json в обычный питоновский словарь для облегчения работы.

Что же делает json таким популярным? Ну, очевидно, это удобство использования. Если вспоминать ближайшего конкурента, а именно xml, то лично мне json кажется более читабельным и удобным в работе. В своей практике я работал с обоими технологиями, и правды ради обе удобны. У каждой есть свои плюсы и минусы, но и сферы применения так же разнятся.

Но насчёт читабельности, предлагаю оформить одну и ту же структуру данных сначала в json, а затем в xml:

{
"name": "JavaScript для чайников",
"authors": [
"Крис Минник",
"Ева Холланд"
],
"publisher": {
"name": "Диалектика",
"email": "info@dialektika.com",
"site": "www.dialektika.com"
}
}

Вот такая произвольная структура получилась для книги, которую я читаю в данный момент, кстати. Теперь повторим ее на xml:

<book>
<name>JavaScript для чайников</name>
<authors>
<author>Крис Минник</author>
<author>Ева Холланд</author>
</authors>
<publisher>
<name>Диалектика</name>
<email>info@dialektika.com</email>
<site>www.dialektika.com</site>
</publisher>
</book>

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

Используется же json чаще всего в случаях, когда нужно быстро получить какой-то ответ от сервера. И речь тут не только о Web. Например, в формате json ответ от сервера могут получать мобильные приложения. Ну и конечно же этот формат данных крайне популярен в REST API, о которых я писал тут.

#python #web #mobile
Список доступных хештегов:

Основные
:
#theory — общая теория программирования, разбор теоретических вопросов с собеседования
#quiz — короткий вопрос на свободную тему в разработке с вариантами ответов
#useful — просто полезные вещи
#blog — посты в формате блога обо мне / на свободную тему

Подгруппы:
#javascript — всё, связанное с языком
#typescript — аналогично 👆
#code — посты во встроенным в текст кодом, готовые примеры
#vite — посты, которые так или иначе затрагивают сборщик
#web — всё, касательно web разработки
#principles — принципы проектирования
#react — всё, касательно React
#patterns — всё о паттернах
#data — всё о данных и манипуляциях с ними
#news — новости

@deprecated
#python — всё, связанное с этим языком
#mobile — мобильная разработка
#design — штучки для дизайна
#github — интересности с гита
#chatbot — мои боты и всё, что с ними связано
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Адаптивная и отзывчивая вёрстка

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

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

Адаптивная вёрстка — та вёрстка, где для каждого из типов устройств существует собственный макет. В основном, используются фиксированные размеры элементов, а переходы между «устройствами» при изменении размеров окна браузер выглядят рвано, поскольку происходят скачками от запроса к запросу.

Создаются опорные точки при помощи запросов в CSS, выглядит это примерно так:

.block {
display: grid;
}

@media (max-width: 768px) {
/* стили для экранов шириной до 768px */
.block {
grid-template-columns: 1fr;
}
}

@media (min-width: 768px) and (max-width: 1024px) {
/* для ширины экрана от 768px до 1024px */
.block {
grid-template-columns: repeat(1, 3fr);
}
}

@media (min-width: 1024px) {
/* для ширины экрана более 1024px */
.block {
grid-template-columns: repeat(1, 6fr);
}
}


При отзывчивой вёрстке существует лишь один макет, например, только для мобильных устройств или только для компьютеров, а всё остальное строится отзывчиво относительно изначального макета. Есть даже специальные названия для подходов к разработке, например, Mobile First Design или же Desktop First Design. Особенность такой вёрстки заключается в полной адаптивности под любые устройства и плавность переходов между ними, хотя целевой платформой является что-то одно — либо смартфон, либо компьютер.

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

Спасибо за прочтение, это важно для меня ❤️

#web #theory #mobile #design #useful
29👍16🤔2🐳2🖕1