This media is not supported in your browser
VIEW IN TELEGRAM
Animated Weather Cards
Внутри карточки находится SVG картинка, анимируемая библиотекой TweenMax.
👉 @seniorFront
Внутри карточки находится SVG картинка, анимируемая библиотекой TweenMax.
👉 @seniorFront
👍5
Что произойдет, если свойство или метод не найдены в объекте при обращении к нему?
Anonymous Quiz
10%
Будет вызвано исключение
46%
Вернется undefined
29%
Поиск продолжится в прототипной цепочке
2%
Свойство автоматически создастся в объекте
13%
Программа завершится с ошибкой
👎11👍4
Media is too big
VIEW IN TELEGRAM
Light & Shadow Text Shadow Animation
В этом видео создается источник света и анимированная тень на CSS и JS.
👉 @seniorFront
В этом видео создается источник света и анимированная тень на CSS и JS.
👉 @seniorFront
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Expanding card page transition effect
При нажатии на на карточку запускаются CSS анимации, а также анимации, реализованные в JS.
👉 @seniorFront
При нажатии на на карточку запускаются CSS анимации, а также анимации, реализованные в JS.
👉 @seniorFront
👍2
The Hashtag Generator
Маркетологи тратят слишком много времени на введение хэштегов. Давайте поможем им с помощью нашего собственного генератора хэштегов!
Вот что нужно сделать:
✓ Все слова должны начинаться с хэштега (#).
✓ Все слова должны быть написаны с заглавной буквы.
✓ Если конечный результат длиннее 140 символов, он должен вернуть false.
✓ Если входные данные или результат - пустая строка, то он должен возвращать false.
Пример:
👉 @seniorFront
Маркетологи тратят слишком много времени на введение хэштегов. Давайте поможем им с помощью нашего собственного генератора хэштегов!
Вот что нужно сделать:
✓ Все слова должны начинаться с хэштега (#).
✓ Все слова должны быть написаны с заглавной буквы.
✓ Если конечный результат длиннее 140 символов, он должен вернуть false.
✓ Если входные данные или результат - пустая строка, то он должен возвращать false.
Пример:
" Hello there thanks for trying my Kata" => "#HelloThereThanksForTryingMyKata"
" Hello World " => "#HelloWorld"
"" => false
👉 @seniorFront
Топ-10 антипаттернов в разработке ПО, которых стоит избегать
Если вам достался проект, в котором копаться — всё равно что распутывать спагетти в боксерских перчатках, вы, скорее всего, столкнулись с антипаттернами. К этим практикам сначала прибегают как к быстрым решениям, но затем они превращаются в повторяющиеся ночные кошмары. Представьте себе магическую кнопку деплоя, которая ломает всё в 2 часа ночи — а дежурите вы.
Антипаттерны проникают активнее всего, когда команды разработки ставят скорость выше структуры. То, что начинается как невинная короткая дорога, может перерасти в полноценного алгоритмического монстра, подрывая производительность и поддерживаемость. Джоэль Спольски говорит, что «читать код сложнее, чем его писать». А читать такой код попросту больно.
Хорошая новость: вы не застряли в этом. Независимо от того, управляете ли вы кодом внутри компании или работаете с партнёрами по разработке ПО, главное — выявить эти проблемы вовремя. Давайте рассмотрим самые распространённые антипаттерны в программировании, от Спагетти-кода до «Лодочных якорей», с примерами реального кода. Вы научитесь замечать «запашки» на ранней стадии и проводить рефакторинг до того, как ваш продукт станет «Большим комком грязи» (Big Ball of Mud).
👉 @seniorFront
Если вам достался проект, в котором копаться — всё равно что распутывать спагетти в боксерских перчатках, вы, скорее всего, столкнулись с антипаттернами. К этим практикам сначала прибегают как к быстрым решениям, но затем они превращаются в повторяющиеся ночные кошмары. Представьте себе магическую кнопку деплоя, которая ломает всё в 2 часа ночи — а дежурите вы.
Антипаттерны проникают активнее всего, когда команды разработки ставят скорость выше структуры. То, что начинается как невинная короткая дорога, может перерасти в полноценного алгоритмического монстра, подрывая производительность и поддерживаемость. Джоэль Спольски говорит, что «читать код сложнее, чем его писать». А читать такой код попросту больно.
Хорошая новость: вы не застряли в этом. Независимо от того, управляете ли вы кодом внутри компании или работаете с партнёрами по разработке ПО, главное — выявить эти проблемы вовремя. Давайте рассмотрим самые распространённые антипаттерны в программировании, от Спагетти-кода до «Лодочных якорей», с примерами реального кода. Вы научитесь замечать «запашки» на ранней стадии и проводить рефакторинг до того, как ваш продукт станет «Большим комком грязи» (Big Ball of Mud).
👉 @seniorFront
Что такое двустороннее связывание ?
Двустороннее связывание данных (Two-way data binding) — это паттерн проектирования, используемый в разработке пользовательских интерфейсов, при котором пользовательский интерфейс автоматически обновляется при изменении данных, и наоборот, данные автоматически изменяются при модификации пользовательским интерфейсом. Это означает, что модель и представление (view) синхронизированы в реальном времени: изменение в модели немедленно отражается в представлении, и любое изменение в представлении немедленно обновляет модель.
Как это работает
У вас есть текстовое поле в форме (представление) и переменная (модель), которая хранит значение этого текстового поля. С двусторонним связыванием, если пользователь изменяет значение в текстовом поле, переменная в модели будет автоматически обновлена соответствующим образом. Аналогично, если переменная изменяется программно (например, в результате какой-то логики приложения), изменение отразится в текстовом поле.
Оно широко используется в фреймворках и платформах для разработки одностраничных приложений (SPA), таких как Angular. В Angular, например, это достигается с помощью директивы
В этом примере,
Преимущества:
- Упрощение разработки, поскольку не нужно вручную обновлять представление или модель при изменении другой части.
- Улучшение пользовательского опыта, обеспечивая немедленное отображение изменений без дополнительных действий пользователя или дополнительного кода.
Недостатки:
- Сложность отладки, поскольку автоматическое обновление значений в обе стороны может привести к неожиданным эффектам и затруднить трассировку потока данных.
- Производительность, особенно в больших и сложных приложениях, где непрерывная синхронизация данных между моделью и представлением может повлиять на быстродействие.
👉 @seniorFront
Двустороннее связывание данных (Two-way data binding) — это паттерн проектирования, используемый в разработке пользовательских интерфейсов, при котором пользовательский интерфейс автоматически обновляется при изменении данных, и наоборот, данные автоматически изменяются при модификации пользовательским интерфейсом. Это означает, что модель и представление (view) синхронизированы в реальном времени: изменение в модели немедленно отражается в представлении, и любое изменение в представлении немедленно обновляет модель.
Как это работает
У вас есть текстовое поле в форме (представление) и переменная (модель), которая хранит значение этого текстового поля. С двусторонним связыванием, если пользователь изменяет значение в текстовом поле, переменная в модели будет автоматически обновлена соответствующим образом. Аналогично, если переменная изменяется программно (например, в результате какой-то логики приложения), изменение отразится в текстовом поле.
Оно широко используется в фреймворках и платформах для разработки одностраничных приложений (SPA), таких как Angular. В Angular, например, это достигается с помощью директивы
[(ngModel)], которая связывает значение HTML элемента формы (например, <input>) с свойством компонента.<input [(ngModel)]="user.name">
В этом примере,
user.name — это свойство компонента, которое связано с текстовым полем. Любое изменение в поле ввода немедленно обновит user.name, и любое изменение user.name будет немедленно отражено в поле ввода.Преимущества:
- Упрощение разработки, поскольку не нужно вручную обновлять представление или модель при изменении другой части.
- Улучшение пользовательского опыта, обеспечивая немедленное отображение изменений без дополнительных действий пользователя или дополнительного кода.
Недостатки:
- Сложность отладки, поскольку автоматическое обновление значений в обе стороны может привести к неожиданным эффектам и затруднить трассировку потока данных.
- Производительность, особенно в больших и сложных приложениях, где непрерывная синхронизация данных между моделью и представлением может повлиять на быстродействие.
👉 @seniorFront
👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Cool Layout with Complex Chainable Animation
Создано и анимировано на HTML и SCSS. При нажатии на элемент запускается CSS анимация через событие click, обработанное в JS.
👉 @seniorFront
Создано и анимировано на HTML и SCSS. При нажатии на элемент запускается CSS анимация через событие click, обработанное в JS.
👉 @seniorFront
🔥6❤3👍3👎1
SOSAL: Современный социальный подход к программированию
В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).
Все они помогают улучшить ваш код, но их уязвимость в единоличности программиста и его продукта, именно поэтому я выработал новую, социальную идеологию написания кода.
Подход к программированию SOSAL основывается на предположении взаимодействия в процессе разработки множества самых различных людей. SOSAL позволяет адаптировать его для максимального удобства и продуктивности всей команды.
SOSAL состоит из пяти принципов, каждый из них будет подробно описан в отдельных абзацах:
1. Socially-Conscious Code гласит о самом главном концепте работы в команде: кооперации. Для создания дружелюбной кодовой базы, каждому последователю идеологии SOSAL необходимо подробно изучить язык, но необычным образом. Самые главные части языка при работе в команде это стиль кода, чистота кода и идиоматические подходы: изучите стиль кода, распространённые методы решения проблем в языке. Это позволит остальным программистам команды быстрее влиться в решение рабочих задач.
2. Open by Default призывает к открытости кода, при отсутствии причин для обратного. Также этот принцип рекомендует комментировать код так, как будто его читают те, кто только учится программировать. Понять когда нужно комментировать или нет в этом случае очень просто (при условии что вы достаточно хороший программист): если решение проблемы не возникает машинально, или возникает через достаточно длительный срок, то рекомендуется оставить комментарий.
3. Simple Scalability рекомендует писать код, который легко масштабируется. Но стоит сказать, что реализация преждевременных оптимизаций – зло. Простота не есть примитивность, также как сложность не есть крутость.
4. Agile Adaptivity говорит о том, что код должен быть готов к изменениям, даже если они кажутся маловероятными. Обычно, при разработке сложных консольных утилит, я беру готовую библиотеку для обработки флагов и настроек, так как конфигурация на стадии разработки может очень сильно меняться. Стоит соблюдать границу между YAGNI (You Aren't Gonna Need It) и возможностью «эволюции» кодовой базы.
5. Learning-Driven Logic (Логика, основанная на обучении)Learning-Driven Logic призывает писать свой код так, чтобы в процессе написания он учил тебя и других. Рефакторинг – не наказание, а повод применить свои навыки.
👉 @seniorFront
В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).
Все они помогают улучшить ваш код, но их уязвимость в единоличности программиста и его продукта, именно поэтому я выработал новую, социальную идеологию написания кода.
Подход к программированию SOSAL основывается на предположении взаимодействия в процессе разработки множества самых различных людей. SOSAL позволяет адаптировать его для максимального удобства и продуктивности всей команды.
SOSAL состоит из пяти принципов, каждый из них будет подробно описан в отдельных абзацах:
1. Socially-Conscious Code гласит о самом главном концепте работы в команде: кооперации. Для создания дружелюбной кодовой базы, каждому последователю идеологии SOSAL необходимо подробно изучить язык, но необычным образом. Самые главные части языка при работе в команде это стиль кода, чистота кода и идиоматические подходы: изучите стиль кода, распространённые методы решения проблем в языке. Это позволит остальным программистам команды быстрее влиться в решение рабочих задач.
2. Open by Default призывает к открытости кода, при отсутствии причин для обратного. Также этот принцип рекомендует комментировать код так, как будто его читают те, кто только учится программировать. Понять когда нужно комментировать или нет в этом случае очень просто (при условии что вы достаточно хороший программист): если решение проблемы не возникает машинально, или возникает через достаточно длительный срок, то рекомендуется оставить комментарий.
3. Simple Scalability рекомендует писать код, который легко масштабируется. Но стоит сказать, что реализация преждевременных оптимизаций – зло. Простота не есть примитивность, также как сложность не есть крутость.
4. Agile Adaptivity говорит о том, что код должен быть готов к изменениям, даже если они кажутся маловероятными. Обычно, при разработке сложных консольных утилит, я беру готовую библиотеку для обработки флагов и настроек, так как конфигурация на стадии разработки может очень сильно меняться. Стоит соблюдать границу между YAGNI (You Aren't Gonna Need It) и возможностью «эволюции» кодовой базы.
5. Learning-Driven Logic (Логика, основанная на обучении)Learning-Driven Logic призывает писать свой код так, чтобы в процессе написания он учил тебя и других. Рефакторинг – не наказание, а повод применить свои навыки.
👉 @seniorFront
🤔20🔥9👎4
Информационная безопасность для цифровых кочевников
Сейчас я занимаюсь проектом по внедрению дополнительных механизмов проверки прав пользователей при доступе к корпоративным ресурсам. Этот опыт помог мне иначе взглянуть на угрозы, с которыми сталкиваются сотрудники, работающие удалённо и при этом часто меняющие место работы.
В этой статье я хочу поделиться своими наблюдениями. Возможно, они помогут вам лучше защитить себя в дороге и заодно по-новому взглянуть на риски мобильной работы.
👉 @seniorFront
Сейчас я занимаюсь проектом по внедрению дополнительных механизмов проверки прав пользователей при доступе к корпоративным ресурсам. Этот опыт помог мне иначе взглянуть на угрозы, с которыми сталкиваются сотрудники, работающие удалённо и при этом часто меняющие место работы.
В этой статье я хочу поделиться своими наблюдениями. Возможно, они помогут вам лучше защитить себя в дороге и заодно по-новому взглянуть на риски мобильной работы.
👉 @seniorFront
❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Masked Circle Slider
Логика работы карусели реализована при помощи библиотеки slick-carousel. Элементы карусели - это SVG картинки, анимированные в JS.
👉 @seniorFront
Логика работы карусели реализована при помощи библиотеки slick-carousel. Элементы карусели - это SVG картинки, анимированные в JS.
👉 @seniorFront
👍4🔥2
Media is too big
VIEW IN TELEGRAM
Animated Click Effect
В этом видео создается анимированные эффект при клике на CSS и JS.
👉 @seniorFront
В этом видео создается анимированные эффект при клике на CSS и JS.
👉 @seniorFront
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Animating svg polygon points
В HTML создана svg картинка. В ней есть элементы <polygon/>, которые анимируются библиотекой TweenMax.
👉 @seniorFront
В HTML создана svg картинка. В ней есть элементы <polygon/>, которые анимируются библиотекой TweenMax.
👉 @seniorFront
🔥8
Какой CSS селектор выберет элементы, у которых атрибут href начинается с "https"?
Anonymous Quiz
32%
a[href*="https"]
16%
a[href$="https"]
44%
a[href^="https"]
7%
a[href~="https"]
👍2👎2
This media is not supported in your browser
VIEW IN TELEGRAM
SVG Mask Slider
Внутри слайдера находятся SVG картинки, анимированные библиотекой TweenMax.
👉 @seniorFront
Внутри слайдера находятся SVG картинки, анимированные библиотекой TweenMax.
👉 @seniorFront
👍5
Valid Braces
Создайте функцию, которая принимает строку скобок и определяет, является ли порядок скобок правильным. Она должна возвращать
Все входные строки будут непустыми и состоять только из круглых скобок, скобок и фигурных скобок:
Что считается валидным?
Строка скобок считается валидной, если все скобки сопоставлены с правильной скобкой.
Примеры:
👉 @seniorFront
Создайте функцию, которая принимает строку скобок и определяет, является ли порядок скобок правильным. Она должна возвращать
true, если строка допустима, и false, если недопустима.Все входные строки будут непустыми и состоять только из круглых скобок, скобок и фигурных скобок:
()[]{}. Что считается валидным?
Строка скобок считается валидной, если все скобки сопоставлены с правильной скобкой.
Примеры:
"(){}[]" => True
"([{}])" => True
"(}" => False
"[(])" => False
"[({})](]" => False👉 @seniorFront
Краткая история JavaScript
В этом году JavaScript исполняется 30 лет.
За три десятилетия он прошел путь от забавного и непритязательного скриптового языка, созданного за 10 дней, до самого популярного языка программирования в мире. В статье — ключевые моменты истории JavaScript, которые помогут понять, как он менялся и куда идет.
👉 @seniorFront
В этом году JavaScript исполняется 30 лет.
За три десятилетия он прошел путь от забавного и непритязательного скриптового языка, созданного за 10 дней, до самого популярного языка программирования в мире. В статье — ключевые моменты истории JavaScript, которые помогут понять, как он менялся и куда идет.
👉 @seniorFront