Pull to refresh
1
Karma
0
Rating
Кондратий Ермолин @Ermolin

User

Стандарты и шаблоны для ТЗ на разработку ПО

System Analysis and Design *

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views 623K
Comments 22

oDesk для начинающих

Freelance

Зачем?

Вообще, идея этого поста пришла мне в голову в тот самый момент, когда я, не имея до этого за плечами полноценного опыта фриланса, решил всерьез освоить oDesk. Да, если кто не знает, oDesk — это одна из крупнейших в мире фриланс-бирж. Итак, дело было в июле этого года. Официальной работы к тому времени у меня уже полгода как не было, все подработки закончились, новых серьезных заказов не предвиделось, и oDesk представлялся мне весьма перспективным вариантом. Аккаунт, как водится, был зарегистрирован «про запас» еще за год до того, но висел все это время без дела, поэтому начинать нужно было с нуля. При этом я был почти уверен, что руководство, хотя бы самое краткое, на тему, как и с чего начинать, я где-нибудь (уж на Хабре-то точно!) да найду.
Возможно, я плохо искал. Однако все, что мне попалось по теме, сводилось только к тому, что не нужно сразу загибать цены, лучше начинать с небольших. Примерная цитата: «начинайте с $10 в час, со временем, дорастете и до $15». Дорастать до $15, да еще и со временем, мне категорически не хотелось, я был уверен, что можно зарабатывать значительно больше. Да и кроме того, меня волновало огромное количество вопросов. Как заполнять профиль? На какие проекты откликаться? Как составлять cover letter? Как, черт побери, получить этот первый заказ, когда все тебе отказывают?
В тот момент я решил, что если все у меня получится, обязательно напишу то самое руководство для новичков, которого я не нашел.

Читать дальше →
Total votes 192: ↑175 and ↓17 +158
Views 500K
Comments 385

Простейший JSON RESTful API на Эликсир

Ruby on Rails *API *Elixir/Phoenix *
Translation

Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков?


От переводчика:
В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире.
Код примера незначительно изменён для того, чтобы соответствовать текущим версиям библиотек.
Полный код примера с изменениями можно увидеть на GitHub.



Проблемы нового языка


Многие разработчики приходят в Эликсир из мира Ruby. Это очень зрелая среда с точки зрения количества доступных библиотек и фреймворков. И такой зрелости мне иногда не хватает в Эликсире. Когда мне нужна сторонняя служба, результат поисков подходящей может быть следующим:

какой же будет результат?
Total votes 18: ↑17 and ↓1 +16
Views 8.6K
Comments 0

Дзен Эрланга [и Эликсира — прим. переводчика]

Programming *Perfect code *Designing and refactoring *Concurrent computing *Functional Programming *
Translation

Введение от переводчика


В данной статье речь идёт об Erlang, но всё сказанное в равной степени применимо и к Elixir — функциональному языку, работающему поверх той же виртуальной машины BEAM. Он появился в 2012 году и сейчас активно развивается. Elixir получил более привычный большинству синтаксис плюс обширные возможности метапрограммирования, сохранив преимущества Erlang.


Ещё от переводчика

Статья от 2016 года, но речь в ней идёт о базовых концепциях, которые не устаревают.


Ссылки на понятия и комментарии от меня (переводчика) расположены в квадратных скобках [] и снабжены указателем "прим. переводчика".


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


Отдельное спасибо Яну Гравшину за помощь в вычитке и редактуре текста.


Это свободная расшифровка (или долгий парафраз?) моей презентации на организованной Genetec конференции ConnectDev'16.


001


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

Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Views 6.4K
Comments 9

«Scrum. Революционный метод управления проектами». Книга за 15 минут

MakeRight corporate blog Project management *Agile *Product Management *Personnel Management *
image

Недавно мы в MakeRight.ru с удовольствием прочитали книгу «Scrum. Революционный метод управления проектами» Джеффа Сазерленда. О чем она? В двух словах — о том, как организовать слаженную командную работу.
Начав внедрять элементы скрама на практике, мы пришли к выводу, что идеи книги действительно работают.

Революционный ли это метод, как указано в названии? Не знаем. Но, возможно, те, кто не читал книгу и не знаком с методикой, почерпнут для себя ряд полезных идей из нашего саммари (краткого изложения). Итак…
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 341K
Comments 30

Сайты справа налево: как подключить RTL-стандарт

Alconost corporate blog Website development *CSS *
Translation
Когда неподготовленный человек видит сайт на арабском, иврите или любом другом RTL (right-to-left) языке, у него кружится голова: справа налево располагаются не только текст, но и элементы интерфейса.



Когда мы в Alconost впервые столкнулись с необходимостью локализовать сайт на арабский, а затем протестировать его, нам пришлось изучить, как именно RTL пользователи смотрят на мир:
  • вместо подчёркивания, курсива или р а з р я д к и арабы обычно пользуются надчёркиванием;
  • дробный перенос слова на другую строку не допускается;
  • пустое пространство в строке устраняется растяжением букв;
  • цифры пишутся слева направо;
  • в арабском знаки препинания пишутся слева направо;
  • в иврите и в арабском нет заглавных букв.

А если в RTL текст нужно вставить слово на латинице, оно пишется как обычно: слева направо. Такой смешанный RTL-LTR текст превращается в отличный тренажер для глаз.
Как же добиться поддержки RTL на сайте?
Total votes 15: ↑12 and ↓3 +9
Views 37K
Comments 13

Коридорное тестирование: получаем быстрый фидбек по макетам

Interfaces *Usability *
Tutorial
Я как-то писал про частую ошибку проектировщиков, когда мы совсем забываем про пользователей, считая, что знаем как они думают и как им удобнее.
Понятно, что пользовательское тестирование сильно помогает при проектировании интерфейсов и целых продуктов, но чтобы что-то протестировать, нужен готовый продукт или как минимум прототип.
Создание прототипа хоть и сильно удешевляет тестирование, но тоже требует немалых сил и времени. Да и перед созданием прототипа часто возникают варианты концепции интерфейса, которые хорошо бы тоже протестировать, не затратив при этом больше получаса времени. В этом случае проектировщику может помочь так называемое «коридорное тестирование». На хабре этой теме было уделено не так много внимания, поэтому я решил поделиться несколькими приемами из своего опыта.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 24K
Comments 3

Что нового в JavaScript ES2019

JavaScript *
Recovery mode
Translation
Существует стандартная процедура для последних версий Javascript и за этим стоит целый комитет. В статье я расскажу о том, кто принимает решения по любой новой спецификации, какова процедура для нее и что нового в ES2019.

image

Спецификация языка, управляющая JavaScript, называется ECMAScript. Существует группа под названием технический комитет 39 [TC39], которая рассматривает каждую спецификацию перед принятием.
Читать дальше →
Total votes 40: ↑25 and ↓15 +10
Views 20K
Comments 2

Sharing общих сборок между процессами и доменами в IIS

.NET *ASP *IIS *C# *
Sandbox

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


В этой статье будут показаны пути оптимизации исключительно за счет настроек сервера, таким образом переписывание и перекомпиляция приложений не потребуется. Будет достигнут результат 25 Мб в среднем на один микросервис.

Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views 6.1K
Comments 9

Бэкап скриптами в облако Google Cloud Platform (GCP) за пять минут

Cloud computing *Backup *Data storage *
Tutorial
Давно уже ребята задают вопросы, как организовать резервное копирование в облако, при этом не тратя много сил, времени и лучше всего бесплатно. Поводом для написания статьи послужил очередной диалог на эту тему. По итогами долгой переписки с коллегами, объяснения теории и перебора вариантов практической реализации, я решил написать об этом. Все просто как пять пальцев, но часто спрашивают КАК.

Резервное копирование в облако — тема уже давно не новая. Каждый выбирает своего облачного провайдера, свои инструменты для копирования и пр. Вендоров много, здесь мы рассмотрим именно Google Cloud Platform. Мы все реализуем самыми простыми скриптами, без покупки софта, покупки дисковых хранилищ и прочего.
Читать дальше →
Total votes 10: ↑6 and ↓4 +2
Views 11K
Comments 10

Обзор базовых возможностей ES6

Website development *JavaScript *Programming *
Translation

JavaScript сильно изменился за последние годы. Вот 12 новых возможностей, которые можно начать использовать уже сегодня!


История


Новые добавления в язык называются ECMAScript 6. Или ES6 или ES2015+.


С момента появления в 1995, JavaScript развивался медленно. Новые возможности добавлялись каждые несколько лет. ECMAScript появился в 1997, его целью было направить развитие JavaScript в нужное русло. Выходили новые версии – ES3, ES5, ES6 и так далее.



Как видите, между версиями ES3, ES5 и ES6 есть пропуски длиной в 10 и 6 лет. Новая модель – делать маленькие изменения каждый год. Вместо того, чтобы накопить огромное количество изменений и выпустить их все за раз, как это было с ES6.

Читать дальше →
Total votes 51: ↑41 and ↓10 +31
Views 111K
Comments 41

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

ITSumma corporate blog High performance *Instant Messaging *Apache *Big Data *

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Total votes 87: ↑82 and ↓5 +77
Views 245K
Comments 41

Google Analytics API для маркетолога на практическом примере

EnglishDom corporate blog Google API *Internet marketing *
Tutorial

Привет! По мотивам реализации одной из задач по анализу источников трафика решил написать статью-инструкцию для маркетологов. Это случай, когда маркетологам без Google Analytics API не обойтись. Статья пишется на благо веб-разработчикам, чтобы маркетологи не отвлекали по «всякой фигне».

Знакомимся с технологией на практическом примере. Поехали!

Задача


Есть около 150 000 пользователей, которые зарегистрированы на сайте. Нужно понять, из каких источников изначально пришли 1500 пользователей, которые купили продукт в октябре.
Для привлечения лидов используется модель фримиум, цикл продажи может быть до 1 года.

Из дополнительных настроек, на этапе интеграции Google Analytics, мы подключили UserID и дублировали его значение в Custom Dimension 1 (Scope: User), чтобы с UserID можно было взаимодействовать в отчетах.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 14K
Comments 5

Google Forms: фиксируем событие отправки формы в Google Analytics

EnglishDom corporate blog Web analytics *Internet marketing *
Tutorial

Всем привет!

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

К сожалению, есть ограничения:

  1. Отдельно на форму нельзя добавить счетчик Google Analytics. Даже технологически, формы размещены на доменах Google, поэтому идентификаторы у пользователей всё-равно отличались бы.
  2. Интеграция с сайтом возможна только через iframe. Это большие ограничения — мы не можем отслеживать события внутри iframe.

Поэтому, появляются боли:

  • Душа маркетолога требует отчета по источникам трафика с количеством конверсий «Отправка формы», по каждому из них.
  • А как иначе лить трафик на форму, не понимая какой канал конвертируются заявки?

Решаем проблемы


Сразу скажу, что это не единая таблетка от всех заболеваний, но практический кейс как можно интегрировать Google Forms с Google Analytics, то есть инструкция для знакомства с технологией.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 16K
Comments 0

Какие метрики Google Analytics провоцируют неверные решения

Web analytics *Internet marketing *
Tutorial
Google Analytics и Яндекс.Метрика — большие системы. Их интерфейсы изменяются медленно. И за время работы систем аналитики накопились инструменты, которыми сейчас пользоваться нельзя. Команда rick.ai коллекционирует ошибки аналитики и рассказывает, как легко настроить аналитику против себя.

Почему круговую диаграмму «Новые и вернувшиеся» интерпретируют неправильно?


Команды оценивают долю вернувшихся пользователей по диаграмме «Новые и вернувшиеся». Если вернувшихся пользователей много, не нужно усиливать или запускать ремаркетинг и ретаргетинг, оптимизировать email-рассылки.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 12K
Comments 14

Сервис оповещения миллиона пользователей с помощью RabbitMQ

Тензор corporate blog High performance *Instant Messaging *Erlang/OTP *Server optimization *

Почти в самом начале создания платформы (некоего фундамента, фреймворка на котором базируются все прикладные решения) нашего облачного веб-приложения СБИС мы поняли, что без инструмента, позволяющего сообщить пользователю о каком-либо событии с сервера, жить будет довольно-таки трудно. Все мы хотим мгновенно видеть новое сообщение от коллеги (которому лень пройти 10 метров), поднимающую корпоративный дух новость от руководства, очень важную задачу от отдела тестирования или получение поощрения (особенно денежного). Но путь становления был тернист, поэтому расскажем немного про трудности, которые мы встретили при взрослении от 5.0e3 до 1.0e6 одновременных подключений от пользователей.


Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Views 53K
Comments 24

Боты на .Net Core для Telegram, Slack и Facebook

Альфа-Банк corporate blog Instant Messaging *.NET *API *Facebook API *
Недавно на одном из проектов банка возникла задача написать бота. Итогом этого опыта стал данный текст, который предназначен, прежде всего, для начинающих разработчиков.



Практически все, кто пользуется современными средствами обмена сообщениями, сталкивались с ботами. Одно из определений бота – это программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.

Боты могут использоваться для информирования, для автоматизации процессов (например, автоматической генерации задачи в TFS на основе письма пользователя) и для многих других целей, но т.к. одной статьи не хватит, чтобы рассмотреть все варианты, далее пойдёт рассказ лишь о том, как создать бота для обработки команд.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Views 78K
Comments 14

Система уведомлений о событиях на сайте (на примере аудиоплеера ВКонтакте)

Website development *
Приветствую.

Думаю, многие, кто имеет аккаунт ВКонтакте и слушает там музыку, замечали, что если на одной вкладке включить трек, а затем уже на другой включить второй, первый трек уйдет в паузу. Примерно то же самое происходит с различными уведомлениями (новое сообщение, ответ на комментарий/запись и т.д.) — отображается оно только в активной вкладке. Кому интересно как это работет и каким образом сделать подобное у себя на сайте, милости просим за хабракат.
Читать дальше →
Total votes 94: ↑90 and ↓4 +86
Views 37K
Comments 38

Пара способов отправить уведомления на смартфон со своего сервера

Instant Messaging *PHP *Programming *Development for Android *Google API *
Sandbox
В этом туториале я рассмотрю пошагово, как отправлять со своего сервера уведомления на свой (или не свой) смартфон, какие средства для этого понадобятся. Эти способы универсальны и подойдут для любого языка программирования, т.к. напрямую используют API гугла, без использования библиотек. Отправить можно на смартфоны с Android, iOS и в браузеры с поддержкой Push API (на сегодня это Chrome, Firefox и их производные).

В общем всем тем, кто давно хотел отправлять уведомления со своего домашнего сервера на свой смартфон, но не знал с чего начать, посвящается.
Хочу отправлять свои уведомления!
Total votes 49: ↑43 and ↓6 +37
Views 77K
Comments 81

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity