Comments 14
Спасибо, но как-то слишком кратко получилось. Такой тип статей, как это часто делают, хорошо бы дополнить ответами или ссылками, где описывается данный материал по Dart/Flutter.
Я специально не прикладывал ссылки т.к. хотел чтобы люди сами гуглили эти вопросы. Во время самостоятельного поиска можно найти дополнительно кучу всего интересного.
Если ссылки/ответы действительно нужны, то в ближайшее время могу прикрепить материалы по которым готовился.
Я пишу на разных ЯВУ с 1989 года (БЕЙСИК, ФОРТРАН, ПАСКАЛЬ).
И вот вчера решил ознакомиться с флутером и соответственно дартом.
Не знаю, кто и кого списывал. Впечатление очень похоже со свифтом и js ну и тем как на джаве или в пхп сделано.
Из особенностей синтаксического сахара самого дарта
1) Конструкторы у класссов. Тут фантазия у авторов разгулялась.
остальное в различном виде (или подобие видел)
final в яве один в один. const - классика практически во всех ЯВУ есть
2) Future - промис из javascript
3) Eventloop - пока не дошел до них (для себя буду искать есть ли отличая от Handler & Executor из java )
4) Isolate с первого прочтения как аналогия с асинктаск из java, которая еще наложила lock на объект.
5) Вау эффект от Stream, млин или я не знал, что подобное можно замутить в PHP или JAVA
6) Null safety - Swift и Dark найдите отличия
7) dinamic - добро пожаловать в джава скрипты ( в качестве параметра может прилететь все, что угодно)
object, null - отличий от других ЯВУ не вижу.
8) extension - как-то повеяло разработкой под iOS
mixin - trait из PHP
abstract class есть в любом ЯВУ с ООП.
9) hash & equal - имхо из разряда вопросов для собеседования. Опять же нового от других ЯВУ тут не вижу.
-----------------
Чтобы я спросил. Замыкания. В мобильной разработке используется постоянно.
P.S. не сильно ругайте просто поделился впечатлением о дарте на вторые сутки изучения.
Учебник по синтаксису прочитан. Но реальный код еще не писал.
Что забавно, про замыкания меня спросили только один раз и это был собес в котором вместо flutter/dart гоняли по знаниям js) хотя в вакансии про это ни слова не было.
Dart изначально создавался как УБИЙЦА JavaScript. Поэтому он так сильно похож на другие языка и поэтому, как второй язык, его достаточно просто учить.
Вау эффект от Stream, млин или я не знал, что подобное можно замутить в PHP или JAVA
ЕМНИП, это есть в Kotlin под именем Flow. А также в C# под именем IAsyncEnumerable (но не так распространено)
Котлин не использовал. Со студенчества был небольшой задел на джаву. Поэтому читал месяц стартандроид (после 78 урока) начал писать приложение.
День третий разбирания с флатером. https://github.com/flutter/samples.git - запускаю и разбираюсь в примерах. Ага зависимости тянутся с pub.dev. (Знакомо packagist,npmjs)
Попутно по классам флатера для UI очень пригодится предварительно разобраться с самим https://material.io/
Прикидываю как переписать свое приложение. Шаред преференсы - аналог найден. room - floor. Получение intent - облом раз (GPL лицензия). Смотрим дальше. Оп. А вот оказывается и Stream задействован ;) Разобраться еще как сбиндиться на службу и можно начинать. А там по ходу уже
Изолят скорее нужно с тредом сравнивать из паскаля. Отдельный поток от основного потока приложения да ещё с изолированной памятью.
В последнем абзаце я бы еще добавил "а нужен ли вам яндекс?". Денег там не так много предлагают, как может показаться :) Работа среднего инженера не будет отличаться от любой другой компании подобных размеров - все тот же говнокод и десятилетнее легаси.
Моя история с Яндексом тянет вообще на отдельную статью, собес длился около месяца. В конце мне должны были прислать оффер, но вместо него мне пришло сообщение о том, что вакансия внезапно закрылась и никакого оффера не будет. А из-за их слов, о успешном прохождении собеса, я перестал искать работу и ждал этот оффер)
спасибо, а что бы из этого списка вы оставили для позиции джуна?
Думаю в каждой фирме свои критерии на джуна. Самое главное что хочет увидеть работодатель это то, что у кандидата есть какая-то база по программированию и стремление развиваться.
Когда я занимался подбором, то действовал следующим образом.
1. Давал простенькую задачу на алгоритмы (решается в 6 строк)
2. Всегда задавал ряд типичных вопросов
ООП
Подробней расспрашивал про классы (как сделать поле приватным, как наследоваться, что такое конструктор и т.д.)
git
3. Смотрел был ли опыт изучения android/ios/web. Если был, то выстраивал вопросы относительно этого опыта, спрашивал самую базу, чтобы понять насколько кандидат разобрался в том, чем уже занимался.
Если был опыт dart/flutter то:
4. Dart
сколько потоков
что значит "асинхронный язык"
какие типы данных есть в dart
5. Flutter
stateful и stateless widgets
как переходить между экранами
какими виджетами пользовались (container, row и т.д.)
как подключить библиотеку
Если кандидат смог без проблем решить задачу, что-то ответил на вопросы и с ним было комфортно общаться, то его звали на недельную стажировку и там уже смотрел на прогресс в обучаемости.
Мой опыт flutter собеседований