kamyshev.code
1.94K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
​​WASM

Вчера публиковал пост о веб-воркерах. Вторая технология, важная для производительности фронтенда — WebAssembly. Это такой способ выполнять не-JS код в браузере. Со всеми вытекающими — можно проводить сложные вычисления на Rust, и строить графики на Python.

Этот подход тоже не лишен недостатков — wasm-файлы довольно тяжелые, ваше приложение будет медленно загружаться, зато быстро работать.

13 июня в 20-00 МСК OTUS проводит открытый урок "WebAssembly". Там подробно расскажут о WebAssemby, принципах его работы и кейсах применения.

#фронтенд #производительность #партнерский_материал
Deno

На HolyJS слушал доклад про Deno. Это был не очень хороший доклад про крутую технологию от интересного человека.

Deno — это рантайм для TypeScript (можно запускать и JavaScript), который должен стать лучшей версией Node.js.

Три ключевых приемущества:
+ распределенное хранилище пакетов — любая библиотека импортируется просто по URL;
+ безопасность — по умолчанию у приложения нет доступа до важных штук (сеть, диск, устройства) и их нужно выдавать явно;
+ поддержка TypeScript из коробки.

Технология еще совсем сырая — использовать ее в реальных приложениях не стоит. Но осенью обещают стабильный релиз.

Тематические материалы:
+ Deno on GitHub
+ Распаковываем фреймворк
+ Deno — новый Node.js?

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

#js
Веб и Python

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

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

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

#партнерский_материал
Опасное место

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

Многие языки (привет, TypeScript) не очень хорошо умеют сигнализировать о возможном отсутствии значения. Решение — явно указывать это в коде.

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

Стандарт Option включает в себя многое, что зачастую не нужно в реальных приложениях. А для фронтенда важен каждый байт. Поэтому я сделал минималистичную реализацию для TS/JS — nanoption (220 байт).

Почитайте, как использовать Option в вашем языке и попробуйте.

#проектирование #js
Есть замечательный коллективный аккаунт — twitter.com/jsunderhood, но не всем удобно читать его именно в твиттере.

Сделал зеркало в телеграме @jsunderhood_mirror. Туда автоматически попадают все из твиттера.
​​Dart

Я часто смотрю на новые языки программирования.

Пару месяцев назад уже пробовал Dart, делал небольшое приложение на AngularDart. Мне понравился фреймворк, но не понравился язык.

Неделю назад снова столкнулся с Dart, на этот раз для мобильной разработки (фреймворк Flutter).

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

Dart очень объектно-ориентированный язык, в нем достаточно хорошо работает вывод типов, очень выразительный синтаксис.

#языки
Flutter

В прошлом я немного писал мобильные приложения на React Native. Мне не нравилось. Отвратительный тулинг, странные библиотеки и куча костылей на каждой шагу.

Сейчас я снова столкнулся с необходимостью сделать небольшое мобильное приложение и решил попробовать Flutter.

Это прекрасный фреймворк, которые помогает делать приложение с минимальным трением. Он в меру прост, библиотек мало, но они супер-качественные, тулинг отличный.

Конечно, и у Flutter есть свои проблемы (например, разметка описывается очень сложными конструкциями), но в целом он круче ReactNative.

Если вы умеете только в веб, но хочется попробовать сделать что-нибудь для мобилок — Flutter отличный вариант.

#рекомендации
SOLID

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

Тематический доклад — Солидный код

#проектирование
Мы в Breadhead делаем много крутых штук и решили рассказывать о них в телеграм-канале — @breadhead.

Он не только про техническую сторону (хотя технические посты будут), а о заказной разработке вцелом: деньги, изменения, факапы, технологии, дизайн, процессы, продажи. Мы все пишем туда посты, поэтому они будут очень разными — от концепции редизайна сайта Петербургской Филармонии до объяснения, почему мы пишем на Node.js.

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

@breadhead