Что такое Ember.js?
Ember.js — зрелый фронтенд фреймворк, получивший много внимания в последнее время.
Ember.js вобрал в себя множество современных JavaScript концепций и технологий. Вот их неполный список:
●Транспайлер Babel для полноценной поддержки ES2015 синтаксиса.
●Поддержка юнит, интеграционного и приемочного тестирований с помощью Testem и QUnit.
●Brocolli.js для сборки ассетов.
●Поддержка live-reload для сокращения отклика во время разработки.
●Шаблонизация с использованием Handlebars.
●Навигация в любую часть приложения благодаря
системе роутинга.
Полная поддержка JSON API, но при этом присутствует возможность использовать любой API, который вам необходим.
Для работы с Ember.js предполагается, что у вас установлены свежие версии Node.js и npm.
Также стоит упомянуть, что Ember — исключительно фронтенд фреймворк. Есть множество способов взаимодействия с бэкендом на ваш выбор, но сам бэкенд никак не управляется Ember.
В закючение хочу сказать что Ember способен на многое и позволяет очень быстро создавать веб-приложения различной сложности. Он навязывает свои представления о том как вы должны структурировать ваш код, но в большинстве случаев это не так плохо, как кажется, так как предлагаемая им структура в любом случае необходима.
Ответ на пост «Современное програмирование»3
Картинка практически отображает реальность в JS сейчас.
Есть такой npm-пакет, называется core-js. Эта библиотека является зависимостью очень многих JS пакетов, согласно данным npm - имеет > 25 миллионов скачиваний в неделю. Возможно при установке очередного npm-пакета вы видели сообщение в консоли "the author is looking for a good job -)" - вот это она.
Это сообщение выводится уже очень давно, и вот я решил узнать - сколько же можно работу-то искать? Тем более будучи создателем такой популярной библиотеки? Начал копать: зашёл на github-страничку создателя - его никнейм zloirock, и посмотрев на график активности сразу насторожился:
Человек на протяжении многих лет пушил код практически каждый день, и вдруг перестал. Решил копать дальше, просмотрел последние созданные issues в проекте - и наткнулся вот на это:
"Кажется злойрок - автор и основной сопровождающий проекта будет недоступен в течение 1.5 лет" - уф ну хотя бы жив здоров человек. Хотя проект в данный момент переживает не лучшие времена.
Ну а дальше проще - по запросу "what happened to zloirock core js" выходим на разные издания, говорящие об одном: Денис Пушкарёв, он же злой рок заключён под стражу на 18 месяцев за то что управляя мотоциклом, совершил наезд на 2-х пешеходов - в результате наезда один из пешеходов скончался.
Жалко пешехода, жалко Дениса.
новость - https://soylentnews.org/article.pl?sid=20%2F03%2F29%2F1625233
ссылка на профиль github - https://github.com/zloirock
решение по уголовному делу - https://zheleznodorozhny--alt.sudrf.ru/modules.php?name=sud_...
Заманчивое предложение (нет)
Если у меня раньше и были сомнения, стоит ли идти в веб разработку (или чего другое, связанное со скриптами), то теперь они отпали.
Я.Директ, вы хоть картинки для рекламы не такие страшные подбирайте)
Во все тяжкие: Веб-разработчик с нуля. 16 месяцев
Воинское искусство обладает такой силой, что может из простолюдина сделать Короля, а из Короля - простолюдина. Никколо Макиавелли
Цель — Senior Frontend Developer.
Язык: JavaScript / TypeScript.
Возраст: 29 лет.
Работа (настоящее время): Middle Frontend Developer в компании "Open Solutions".
Локация: г. Санкт-Петербург.
Привет! Все меняется очень быстро, особенно, если мы этого хотим. Через некоторое время после публикации последнего поста(месяц назад), я решил, что горячий песок Средиземного моря и жаркое лето может меня сильно расслабить и, проанализировав настоящее положение вещей, и то, какие препятствия могут произойти в будущем, я решил не торопить события и отложить переезд в другую страну на неопределенный срок.
Далее, взвесив все за и против касательно работы на фрилансе, я решил выстраивать эту систему параллельно маленькими шагами, дабы не разрушить выполнение обязательств, которые у меня имеются на данный момент в жизни. Поэтому я принял решение устроиться на полноценную удаленную работу.
Поглядев на требования к middle разработчикам на всем известным ресурсах по поиску работы, я понял, что устроиться на удаленку на данную позицию будет несложно. Расчехлил резюме и приступил к поиску работы. Пять собеседований, из них четыре в один день, один отказ, одно собеседование с проходом на второй этап, одно собеседование с проходом на третий этап после технического собеседования с лайфкодингом и тестового задания и один оффер после технического собеседования. Спустя неделю после начала поиска, я принял оффер от одной компании, не дожидаясь ответы от других компаний и не проходя далее следующие этапы в других.
Что хочу отметить касательно собеседований на позицию middle? Во-первых, почти во всех компаниях (в том числе куда я устроился) помимо устных ответов на вопросы, которые задают на позицию junior, здесь ты решаешь задачи и пишешь код онлайн. Во-вторых, касательно вопросов - вопросы разные, помимо базы javascript и фрэймворков, здесь задают вопросы о том, как бы ты решил ту или иную реальную конкретную задачу.
Итак, уже две недели я тружусь в компании Open Solutions на удаленной основе. У меня сейчас выстроена 3-х месячная система повышения уровня квалификации (это по желанию), где у меня есть более опытный коллега, который поставил мне задачу на самостоятельное изучение конкретной плоскости и каждый месяц буду делать отчет что получилось и что нет. Сейчас у меня уклон идет в SSR. То есть уход от SPA в изоморфные приложения.
Понятное дело, что middle разработчики бывают разные и поэтому, если вы изучите рынок, то увидите, что зарплаты колеблются от 80 т.р. до 160 т.р. или даже выше. Поэтому будем ориентироваться на средние показатели и тот факт, что по линейке компании, куда я устроился, я прошел на миддла. Вопрос соответствия вообще холиварная тема, но хочу сказать, что соотношение уровня заработной платы и задач,и которые я решаю, меня вполне устраивают.
Так, что могу официально заявить, я на втором и скорее всего самом долгом этапе в становлении профессиональным разработчиком. Компания меня устраивает, условия тоже, коллектив тоже. Поглядим, конечно, что будет дальше. Идея открыть свою компанию у меня никуда не делась.
Кстати, теперь могу спокойно ехать хоть в Турцию и жить там очень комфортно, но сейчас это не актуально.
Памятуя традицию еженедельных отчетов:
- Решил несколько тестовых заданий по React (не выкладываю в репу с тестовыми, так как еще рано, компании их еще высылают соискателям);
- Прочитал книгу Scott Chacon - ProGit (рекомендую тем, кто хочет узнать полезные команды системы контроля версий и проникнуть внутрь git);
- Посмотрел выступление рендеринг на стороне сервера;
Да, ты спросишь, а как связаны данные новости с обложкой поста?
Всё просто. Помимо программирования я интересуюсь воинскими искусствами и планирую восстановить тренировки, для чего ищу спарринг-партнера.
Я не тренер, я такой же как и ты(возможно знаю чуть больше, а может и нет), будем вместе исследовать воинские системы и смотреть что работает, а что не работает, опираясь на конкретные материалы, книги и исследования.
Да и физическая нагрузка в нашей сидячей работе лишней не будет. Особенно полезная нагрузка и навыки, которые могут пригодиться в жизни.
ЛОКАЦИЯ: САНКТ-ПЕТЕРБУРГ. (более точное место определим позже, пока погода позволяет будем тренироваться на улице).
Что конкретно будем рассматривать в ходе тренировок:
- Стиль бокса Каса Д'амато (тренер и наставник Майка Тайсона);
- Испанское неаполитанское и палермитанское фехтование;
- Работа с ножом и против ножа(в том числе голыми руками);
- Работа со стилетом;
- Работа с другими видами оружия;
- Как всё это интегрировать в жизнь и т.д.
Начальная экипировка и оружие для занятий у меня есть, далее будем уже докупать.
Я думаю каждый мужчина должен уметь постоять за себя, за семью и за слабого.
Пиши в телеграм, если есть желание составить мне компанию: @artem_owiii
Ну и помимо воинского искусства, общая тема программирования никуда не делась, всегда можно пообщаться и возможно начать какие-нибудь совместные проекты.
Всем удачи и реализаций!
Как Я писал простой timer
Всем привет. Сегодня на работе мне поставили задачу сделать простой таймер с обратным отсчетом. Референс, который мне прислали, выглядел так.
Какие так же были пожелания:
1. Чтобы клиент мог сам установить таймер, не копаясь в JS.
2. Чтобы таймеров могло быть несколько на странице.
Быстро погуглив решения или библиотеки Я понял, что лучше мне написать его самому. Хотя честно признаюсь 1 функцию Я скопировал в целях экономии времени.
Так как Я учу typescript, решил в рамках практики написать на нем. Решение Я видел такое: добавляем в верстку 1 контейнер с классом и дата-атрибутом, в котором у нас будет конечная дата. Класс Я назвал js-timer, а атрибут data-deadline.
Основой всего будет класс Timer. В конструктор он принимает HTMLElement (т.е. заранее найденный блок по классу), а так же там есть переменная total - это кол-во оставшегося времени.
У класса есть методы: init, calculateTime, getTimeRemaining, createString, render, destroy.
Метод init запускается в конструкторе. Он ничего не возвращает, в нем осуществляются проверки на наличие переданного элемента и наличие нужного data-атрибута. Если проверки не пройдены, то функция завершает работу. Если проверки пройдены, тогда срабатывает счетчик, который будет раз в секунду запускать функцию calculateTime. Тут же идет проверка на кол-во оставшегося времени, если его не осталось, счетчик останавливается, а таймер исчезает со страницы
Метод calculateTime принимает полученное значение deadline из дата-атрибута и передает его в функцию getTimeRemaining. В этом методе мы парсим нашу дату и вычитаем из дедлайна текущий момент времени. Получаем n-кол-во секунд до нашей даты. Далее мы делим это число в разных пропорциях, чтобы найти день/часы/минуты/секунды. Так же обновляем нашу переменную total. На выходе имеем объект, с которым дальше будет удобнее работать
Этот объект мы передаем в функцию createString. Несмотря на то, что у нас тут формируется HTML код, функция возвращает его в виде строки. Так же тут Я с помощью тернарного оператора задаю правильные концовки для слов секунд(а/ы)/минут(а/ы) и так далее.
Результат выполнения этой функции мы передаем в метод render, который вставляет полученную строку в наш HTML. Ну а как только время истекает, срабатывает метод destroy.
А вот конечный результат

Вот в целом и все, такой микрокейс получился. Я понимаю, что код написан не идеально, не везде прописано, что возвращает функция или методам Я не прописал public|private, но тут все ограничивается одним классом, никакой сложной логики.
Возможно кому-то это будет интересно или даже пригодиться. Код получился небольшим: с полифиллом на IE 11 + комментариями на 140 строк.
Код легко редактировать под себя, ссылка на репозиторий тут.
Мне хочется спросить, стоит ли вообще выкладывать подобное? Я понимаю, что есть опытные программисты, для которых это - детсад. Но мне кажется, что тут есть люди с небольшим опытом, которые рады чему-либо научиться, плюс есть люди, которым будет интересно, чем же эти разработчики у себя там занимаются?
А что вы думаете?