Pull to refresh
0
Karma
0
Rating
  • Posts
  • Comments

Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы

SimbirSoft corporate blogJavaScriptProgrammingООPVueJS

Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular. 

В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML. 

Объектно-ориентированное программирование (ООП) на тот момент только начинало формироваться, поэтому разработчики зачастую интуитивно решали, где и какой код надо писать. Таким образом, в мире разработки зародилось такое понятие, как «Божественные объекты», которые первоначально отвечали практически за всю работу отдельных частей системы. Например, если в системе была сущность «Пользователь», то разработчику следовало создать класс User и в нем писать всю логику, так или иначе связанную с пользователями. Без разбиения на какие-то ещё файлы. И если приложение было большим, то такой класс мог содержать тысячи строк кода.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Views2.3K
Comments 9

Как ускорить аутентификацию и снизить потребление памяти в 5 раз? Наймите дворецкого

Учи.ру corporate blogInformation SecurityDistributed systemsMicroservices

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

Меня зовут Роман Литвинов, я разработчик в команде Учи.ру. Хочу вам рассказать именно о такой истории из практики и о нашем сервисе под названием Butler, о «дворецком», через которого проходит каждый пользователь, прежде чем зайти на платформу.

Итак, овсянка, сэр.

Читать далее
Total votes 1: ↑1 and ↓0 +1
Views5.8K
Comments 7

Почему нам не нужно бессмертие

Reading roomPopular science

На Хабре с завидной регулярностью встречаются статьи воспевающие личное бессмертие индивидуума: дескать смерть есть ошибка в программе, сбойный ген, иногда даже болезнь, которую стоит только победить и люди станут жить вечно (и, очевидно, счастливо)! Несмотря на то, что свое собственное существование мне хотелось бы, по возможности, продлить, я все-таки попробую порассуждать на тему, почему человечеству, возможно, не стоит идти по этому пути. Не буду приводить набившие оскомину аргументы про перенаселение и нехватку ресурсов (в наивном понимании), но приведу пару соображений, которые мне кажутся любопытными.

Читать далее
Total votes 60: ↑43 and ↓17 +26
Views18.5K
Comments 433

Люди не меняют свою жизнь, потому что в глубине души знают — они фиговые специалисты

Skyeng corporate blogStudying in ITIT career

Сколько людей в стране не любят свою работу и вообще ненавидят свою жизнь? Три года назад мне в руки попало одно очень занятное исследование Google: Barriers, motives & triggers of entrepreneurship. Три тысячи респондентов, очищенная выборка, больше ста российских городов, интервью дольше 20 минут. Там были несколько чисел, которые меня, мягко говоря, ошеломили.

Читать далее
Total votes 118: ↑79 and ↓39 +40
Views29.7K
Comments 243

Что запрещает принцип Паули?

Маклауд corporate blogPopular scienceChemistryQuantum technologies

Принцип запрета Паули с однозначной многочастичной волновой функцией эквивалентен требованию, чтобы волновая функция была антисимметричной по отношению к обмену частицами. Как это объяснить на пальцах? Легко - ткните пальцем в стол, в монитор, во что-нибудь твердое. Глубоко пронзили материю? Удалось достичь перекрывания атомных электронных облаков пальца и стола? Нет? Не удивительно. Читайте дальше, если хотите узнать, почему так.

Читать далее
Total votes 64: ↑63 and ↓1 +62
Views16.6K
Comments 18

Ваш код не бесполезнее чая

Timeweb corporate blogReading room
Translation

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

Читать далее
Total votes 13: ↑9 and ↓4 +5
Views3.8K
Comments 8

JavaScript-классы — это не просто «синтаксический сахар»

RUVDS.com corporate blogWebsite developmentJavaScript
Translation
После того, как я прочитал очередную статью, где говорится о том, что JS-классы — это всего лишь «синтаксический сахар» для прототипного наследования, я решил написать материал, призванный (в который раз!) прояснить вопрос о том, почему данное утверждение неверно. Тут я, надеюсь, смогу объяснить разницу между JS-классами и прототипным наследованием, и смогу рассказать о том, почему важно понимать эту разницу.


Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Views13.1K
Comments 16

Была ли когда-нибудь жизнь на Марсе и Венере?

SkillFactory corporate blogPopular scienceAstronautics
Translation

Вопрос о жизни во Вселенной — один из самых неясных во всей науке. Мы знаем, что на Земле есть жизнь, что все живые организмы на Земле произошли от одного общего предка, уходящего корнями в прошлое на миллиарды лет, и что жизнь непрерывно существует на Земле уже более 4 миллиардов лет — по крайней мере 90 % времени существования нашей планеты. Специально к старту нового потока нашего курса по анализу данных и его расширенной версии Data Analyst pro, давайте разбираться, были ли мы единственными живыми существами в Солнечной системе?

Читать далее
Total votes 25: ↑23 and ↓2 +21
Views16.6K
Comments 40

Понимаем красно-черное дерево. Часть 1. Введение

C++
Sandbox

Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня не устраивал.

Мне не хотелось заучивать свойства дерева, псевдокод и варианты балансировки, я хотел знать: почему. Каким образом цвета помогают при балансировке? Почему у красной ноды не может быть красного потомка? Почему глубину дерева измеряют "черной высотой"?

Ответы на эти вопросы я получил только тогда, когда мне дали ссылку на лекцию про два-три дерево, с которого мы и начнем.

Эта статья разделена на 3 логические части. Я рекомендую прочитать их в указанном порядке. Первая часть (данная) будет направлена на введение в кчд и знакомство с ним. Во второй части мы поговорим о балансировке и вставке в кчд. В третьей, завершающей, части мы разберем процесс удаления ноды. Наберитесь терпения и приятного чтения.

Читать далее
Total votes 25: ↑24 and ↓1 +23
Views7.9K
Comments 6

Антипаттерн Ёлочка

ProgrammingDesigning and refactoring

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

Читать далее
Total votes 17: ↑8 and ↓9 -1
Views6.1K
Comments 51

Забор Честертона

Reading roomPopular scienceBrain

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

Этот факт подметил английский писатель Гилберт Честертон цитатой: «Никогда не ломайте забор, не узнав, зачем его поставили». Он таким образом хотел предостеречь от необдуманных реформ. Но как данный принцип может быть применён вне политики, в повседневности?

Проявить любопытство
Total votes 20: ↑11 and ↓9 +2
Views6.6K
Comments 21

Используем очереди совместно с БД: обсуждение проблем, возможные способы решения

ProgrammingAlgorithmsMicroservices

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

О подводных камнях такого пути поговорим в этой статье.

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

Читать далее
Total votes 3: ↑2 and ↓1 +1
Views2K
Comments 6

Слабая связность

API

NB: это черновик двух новых глав моей книги, посвященной дизайну API. В тексте встречаются отсылки к предыдущим главам.


Сильная связность и сопутствующие проблемы


В предыдущих разделах мы старались приводить теоретические правила и принципы, и иллюстрировать их на практических примерах. Однако понимание принципов проектирования API, устойчивого к изменениям, как ничто другое требует прежде всего практики. Знание о том, куда стоит «постелить соломку» — оно во многом «сын ошибок трудных». Нельзя предусмотреть всего — но можно выработать необходимый уровень технической интуиции.


Поэтому в этом разделе мы поступим следующим образом: возьмём наше модельное API из предыдущего раздела, и проверим его на устойчивость в каждой возможной точке — проведём некоторый «вариационный анализ» наших интерфейсов. Ещё более конкретно — к каждой сущности мы подойдём с вопросом «что, если?» — что, если нам потребуется предоставить партнерам возможность написать свою независимую реализацию этого фрагмента логики.

Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views5.6K
Comments 3

Бактерии в шахтах: внутриклеточное преобразование сульфата меди в одноатомную медь

ua-hosting.company corporate blogBiotechnologiesPhysicsChemistryEcology


Планету Земля часто называют колыбелью жизни, и в этом титуле совсем мало преувеличений. Жизнь можно найти и в вечнозеленых тропиках, и в знойных пустынях, и на бескрайних ледяных просторах, и даже в жерлах подводных вулканов. Как сказал Ян Малкольм в фильме «Парк Юрского периода»: «life finds a way». Ученые из Хьюстонского университета провели исследование любопытных бактерий, проживающих в шахтах Бразилии и способных преобразовывать ионы сульфата меди (CuSO4) в одноатомную нуль-валентную медь (Cu0). Чем столь интересен это процесс, и как его можно применить в мире людей? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views3.2K
Comments 8

Яндекс.Практикум запустил курсы с гарантией возврата денег, если выпускник не найдёт работу

Яндекс.Практикум corporate blogProgrammingStudying in ITIT career
Сервис онлайн-образования Яндекс.Практикум запустил курсы с расширенной программой, студенты которой получат больше поддержки и практики во время обучения. Отличительная черта этих курсов — гарантия возврата денег, если в течение шести месяцев после окончания обучения выпускник не сможет устроиться на работу.

Расширенная программа появилась на четырех курсах: «Аналитик данных плюс», «Специалист по Data Science плюс», «Python-разработчик плюс», «Веб-разработчик плюс».


Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views3.2K
Comments 4

Можно ли быть немножко беременным, или Российское проклятье Open Source

Timeweb corporate blogOpen sourceDevelopment for LinuxLegislation in ITComputer hardware
Ровно два года назад, в апреле 2019 года, произошло знаменательное событие для всех сторонников свободного и открытого ПО, которые следят за Российскими новостями. АО «МЦСТ» "опубликовало" ОС Эльбрус для свободного скачивания. И несмотря на некоторые сложности в самом начале из-за возникшего ажиотажа, этот дистрибутив остается в свободном доступе по сей день и даже продолжает периодически обновляться.

На текущий момент доступны для скачивания версии «Эльбрус Линукс» 6.0.0 на базе ядра Linux 5.4 и версии 5.0-rc3 и 4.0.4 на базе ядра Linux 4.9.



Я специально написал слово «опубликован» в кавычках, т.к. на тот момент исходные тексты дистрибутива Эльбрус Линукс в свободном доступе отсутствовали. Два года назад в разговоре с CNews директор по маркетингу МЦСТ Константин Трушкин сообщил, что
… исходные коды на продукты компании пока недоступны ни для самостоятельного скачивания, ни по запросу, но в скором времени компания намерена их открыть.

Разные пакеты ПО выпускались МЦСТ под различными открытыми лицензиями, и под ними же будет происходить распространение исходных кодов.

Раскрывая исходные коды, компания преследует маркетинговые цели, связанные с продвижением продуктов МЦСТ, а также стремится расширить комьюнити разработчиков ПО под ОС «Эльбрус».
Так где можно получить исходники Эльбрус Линукс?
Total votes 117: ↑112 and ↓5 +107
Views32.3K
Comments 286

Инструменты для разработчиков могут быть волшебными. Вместо этого они пылятся на полке

Маклауд corporate blogProgrammingJavaDesigning and refactoringDevelopment Management
Translation
image

Я начал работать над передовыми инструментами для разработчика 9 лет назад. Когда я начинал, «инструменты программирования» означали средства просмотра форматов файлов, редакторы и, возможно, варианты grep. Отмечу, что существует большая проблема с определением целей внесения изменений, а еще у меня есть вопросы что у нее общего с поиском и заменой текста

Времена изменились. Меня больше не шокирует, когда я встречаю программиста, который слышал о синтезе программ или даже пробовал инструмент верификации. В настоящее время существует несколько популярных продуктов, основанных на исследованиях передовых инструментов, и достижения в области искусственного интеллекта в целом изменили ожидания. Facebook даже внедрила автоматическое нахождение и исправление ошибок для своих сервисов.

Несмотря на это, исследования все еще на световые годы опережают то, что внедряется. Нет ничего необычного в том, чтобы прочитать статью 20-летней давности про инструмент, который, как было показано эмпирически, позволяет программистам в 4 раза быстрее справляться с задачей, а основная идея все еще пылится в подвалах университетов.
Читать дальше →
Total votes 40: ↑34 and ↓6 +28
Views9.2K
Comments 14

Создаем кэшируемую пагинацию, которая не боится неожиданного добавления данных в БД

Entertaining tasksProgrammingAlgorithmsNode.JSVueJS
Sandbox

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

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

Показать статью полностью
Total votes 5: ↑5 and ↓0 +5
Views4.1K
Comments 9

Сила композиции

JUG Ru Group corporate blog.NETDesigning and refactoringC#Functional Programming


Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


Уже завтра начнется новый DotNext, где я помогу Скотту выступить с другим докладом, а пока что публикую перевод его выступления про композицию. Далее повествование будет от лица Скотта.

Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views8.1K
Comments 4

Построение RESTful web API на платформе InterSystems — 3: Разработка от спецификации

InterSystems corporate blogAPI

В этой статье я хотел бы рассказать о подходе от спецификации (spec-first) при разработке REST API на платформе InterSystems IRIS, который ускоряет разработку приложений в рамках микросервисной архитектуры и решение интеграционных задач. Эта статья является продолжением моей предыдущей статьи про разработку REST API на платформе InterSystems IRIS.

Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views399
Comments 0

Information

Rating
5,825-th
Registered
Activity