Pull to refresh

Quadcode meetup (онлайн) про аналитику, дизайн, работу с командой и не только

Quadcode corporate blog Personnel Management *IT career Finance in IT IT-companies

7 спикеров разных профессий и с разным опытом поделятся своими кейсами. Объединяет их работа в Quadcode. А рассказывать ребята будут про аналитику, Scrum, работу с людьми и дизайн. Участие бесплатное, но нужно зарегистрироваться.

Детали — под катом.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 524
Comments 0

JodaTime — учите матчасть, или важность существительных

Lumber room
Нашел у себя баг. Нужно было по некоторой логике получить временной интервал, причем без привязки к конкретным датам, то есть просто обертку вокруг количества милисекунд между некими событиями.

В моем коде я высчитывал startDate и endDate, и возвращал Duration вот таким образом:
  return new Period(startDate, endDate).toDuration();


Выяснилось, что если startDate и endDate отстояли друг от друга больше, чем на месяц, JodaTime кидал исключение. Решение было найдено быстро:

  return new Interval(startDate, endDate).toDuration();


Починил, и задумался, почему я допустил такой ляп. JodaTime имеет очень богатый набор классов для описания всего, что связано со временем, и мне некогда было разбираться в разнице между Period, Interval, Duration и т.д. И очень зря.
Когда я писал код, в голове вертелось «за отчетный период хлеборобы Кубани убрали и намолотили....». Я, хотя и свободно говорю по-английски, выбрал первый попавшийся класс, похожий на «отчетный период», т.е. Period.

К чему я это все? К тому, как важно правильно называть свои классы/методы/переменные. Почитал я (вовремя, ага, после того, как закончил проект) документацию к JodaTime и позавидовал белой завистью. Ребята приложили кучу усилий к тому, чтобы назвать каждый класс нужным существительным. Interval — это не Period, и понятно почему (ага, теперь понятно). У меня так, к сожалению, получается не всегда. А жаль.
Total votes 7: ↑4 and ↓3 +1
Views 310
Comments 2

Защитное программирование

Website development *Perfect code *.NET *
Translation
Один из моих читателей, Барри Гайлз, недавно написал мне и задал достаточно интересный вопрос, который, по моему мнению, достоен обсуждения:

«Недавно я столкнулся с одной интересной ситуацией на работе: я производил ревью кода и вставил защитные проверки – одну для проверки аргумента конструктора на null, одну для проверки на null значения, возвращаемого из свойства. У меня также имелись утверждения для закрытых методов, которые я использовал для того, чтобы явно указать мои предположения.
«Похоже, что преобладающей практикой среди моих коллег по команде является опускание проверок и допущение падений. Если быть честным, я борюсь с этой концепцией, так как я уже привык разрабатывать посредством защитного программирования и считал это хорошей практикой. Я практически уверен, что дело обстоит так же в большей части руководств и записей в блогах.
«Вы не могли бы дать совет относительно того, почему лучше программировать в защитном стиле, вместо того, чтобы позволить коду провалиться и затем проверять трассировку стека?»
Читать дальше →
Total votes 47: ↑38 and ↓9 +29
Views 33K
Comments 72

UX-рецепт подтверждения номера телефона и электронной почты

Web design *Interfaces *Usability *
Sandbox
В настоящее время интернет пестрит разными сервисами и другими ресурсами, через которые происходит движение денежных средств, размещаются заявки на предоставление различных услуг и многое другое. Эти ресурсы ведут тесную работу с пользователями и доступ, к своему профилю (личному кабинету), является очень важным фактором.
Читать дальше →
Total votes 24: ↑15 and ↓9 +6
Views 9.5K
Comments 15

Полезное дизайнеру: бесплатные новинки для оптимизации дизайн-процессов. Выпуск 2-й

Web design *Website development *Development of mobile applications *Interfaces *Usability *


За последнее время мне удалось найти множество интересных мини-продуктов и небольших инструментов / утилит, которые призваны ускорить ваш дизайн-процесс. В этом выпуске вы найдете 14 ссылок на разные релизы, авторы которых вносят значительный вклад в развитие профессионального сообщества дизайнеров и разработчиков.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 12K
Comments 9

10 понятий для дизайнера в 2019-м

Web design *Interfaces *Mobile applications design *Graphic design *Design
Sandbox
Среда работы UI/UX дизайнеров стремительно расширяется и растет: появляется уйма новых продуктов и инструментов для разработки интерфейсов, крутых возможностей благодаря развитию гибких языков программирования и, конечно же, в дизайнерскую экосферу внедряется множество новых слов и понятий. Самые актуальные и следует разобрать тщательнее, чтобы не только включить в свой лексикон специалиста, но и взять на вооружение в практическом применении.

01. Мондрианизм


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

image



02. Серендипность


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

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

Вы спросите: зачем нужна серендипность? Здесь все просто. С ее помощью можно сделать пользователя счастливее, а сайт/приложение – эффективнее, представляя пользователю возможность потреблять более релевантный контент и чувствовать себя в своей тарелке.

image
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views 15K
Comments 14

Пространство, сетки и макеты

Web design *Graphic design *Design
Translation
Tutorial
В этой статье автор рассказывает о том как подойти к созданию дизайн-системы, рассказывает о её основах и том, как применить описанные методы и понятий в текущем дизайн проекте. Новички смогут узнать базовые понятия, а профессионалы могут освежить или покритиковать содержаний данной статьи.

Организация пространства является ключом к добротному и прекрасному дизайну. Пространственные системы, сетки для вёрстки и макеты фактически предоставляют правила, которые придают вашим проектам постоянный ритм, ограничивают принятие лишних решений и помогают командам оставаться на одном уровне понимания дизайна проекта. Эти фундаментальные понятия являются обязательным требованием для всех дизайн-систем. В этом руководстве мы пройдёмся по основам определения базовых пространственных единиц, создания правил отношений при помощи сеток (grids) и объединения их для создания современных макетов (layout) пользовательского интерфейса.


Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 7.2K
Comments 2

Голливудский принцип (IoC)

Programming *System Analysis and Design *ООP *
Sandbox
В этой статье я постараюсь рассказать о принципе проектирования, называемом Inversion of Control / Инверсия управления (IoC), называемом еще Голливудским принципом. Покажу, какое отношение это имеет к принципу подстановки Барбары Лисково (LSP), а также внесу свою лепту в священную войну private vs protected.


Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views 5.2K
Comments 11

Геймификация в продукте

Acronis corporate blog Design
Translation

image


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

Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views 2.3K
Comments 0

UX Tips for Designing an Online Digital Product Store

Web design *Design
The future of business is digital. E-commerce business is gaining popularity with more and more people getting comfortable buying things online. While there are many factors that define the success of an E-commerce business, a major factor is E-Commerce UX, which refers to the overall experience of a user while shopping through an E-commerce platform. For the user experience to be enjoyable, it has to be personalized, relevant, and seamless. Hence there is a need to understand the target audience- their age, culture, level of tech literacy, channels they use, and their trust to online shopping. E-commerce UX should be data-driven, customer-driven, and user-centered. It should be built on research and validation. The main factors that influence the success of an E-commerce business are the quality of the product or service offered, how it is presented to the customer and how approachable is the design of the electronic platform through which sales are being done.
Read More
Total votes 3: ↑3 and ↓0 +3
Views 796
Comments 0

Иллюстрация как гибкий инструмент коммуникации

Россельхозбанк corporate blog Usability *

Начало нового десятилетия – идеальное время, чтобы взглянуть на тренды прошлого и получить некоторые подсказки об индустрии будущего.

Одним из ведущих специалистов в области иллюстраций и их использования в коммуникациях является Джейми Кларк.

Кларк считает, что градиенты хоть и были на пике трендов в 2010-х, но к концу десятилетия их стали использовать более изощренно. «Я наблюдаю все больше градиентных иллюстраций – масштабных и соблазнительных. В правильных руках они способны создавать различные настроения – от эйфории до мрачной угрозы», утверждал иллюстратор. Он предлагал рассмотреть иллюстрацию Марли Галлардо  об устойчивом развитии в журнале Barron’s. В статье прослеживается склонность художника к сохранению жесткого контроля над палитрой, которая усиливает влияние на восприятие изображения.

Я же поделюсь своим опытом, как тенденции трансформируются в будущие тренды и меняют индустрию на примере применения градиентов в проектах Экосистемы РСХБ.

Иллюстрации, иконографика и рисованные персонажи уже давно в обиходе у UXD дизайнеров (детально про UXD можно прочитать по ссылке). Но основном способом коммуникации в диджитал до 2020 года были фотографии. Что изменилось?

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

Почему же сейчас все больше иллюстрации замещают фотографии?

Иллюстрация, на текущий момент, самый гибкий, быстрый и выделяющийся на фоне конкурентов, инструмент визуализации.

- Создать иллюстрацию быстрее, чем организовать фотосессию

- Иллюстрация гибкая и может быть детально подстроена под контекст.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 1.3K
Comments 8

«Ваш дизайн говно!»: гайд по созданию дизайн-принципов для продуктовой компании

Kolesa Group corporate blog Usability *Product Management *Design
Tutorial

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

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

Читать далее
Total votes 5: ↑2 and ↓3 -1
Views 2.9K
Comments 1

Guide to naming in code

Semantics *Programming *Designing and refactoring *Industrial Programming *Development Management *
Sandbox

We present a guide to name entities in code based on putting naming in perspectives of semantic space, design, and readability. 

The main idea is that naming should not be considered as creation of tags, but as a fundamental part of design process, which implies integral and consistent vocabulary to be used. We discuss naming process and naming formalism from these perspectives and we provide guidelines for practical use.

The work is based on 15 years of experience in engineering work, coding and development management in high-tech industries.

Read more
Total votes 3: ↑3 and ↓0 +3
Views 3.2K
Comments 0

Предметно-ориентированное проектирование (DDD) | Эванс Эрик — обзор книги и рекомендации

System Analysis and Design *Designing and refactoring *Professional literature *

В одном романе для того, чтобы подчеркнуть бесспорную красоту и поразительную сексуальность одной из героинь, автор использовал фразу: "She was a such kind of woman, that every man look at twice". Что в литературном переводе можно понять: "Одна была такой женщиной, что каждый мужчина оборачивался ей в след".

И точно такую же фразу я могу применить к бесподобной книге "Предметно-ориентированное проектирование (DDD)" Эванса Эрика. К ней хочется возвращаться каждый раз, когда ты садишься за проектирование системы в незнакомой тебе области. Словно маяк во время шторма, она помогает вести вашу галеру через сложности, чтобы все гребцы увидели землю, а проект увидел успешный старт.

И в этом обзоре, я расскажу, почему, по моему мнению, это MUSH HAVE книга для каждого middle+ разработчика.

Читать далее
Total votes 7: ↑5 and ↓2 +3
Views 9.7K
Comments 25

Дзен Nim

Programming *C++ *Compilers *C *
Sandbox
Translation

1. Копирование плохого дизайна — плохой дизайн.

2. Если компилятор не может рассуждать о коде, то и программист не может.

3. Не стой на пути у программиста.

4. Перенеси работу на этап компиляции: программы запускаются гораздо чаще, чем компилируются.

5. Настраиваемое управление памятью.

6. Лаконичный код не мешает читабельности, он ей способствует.

7. (Задействовать метапрограммирование, чтобы оставить язык компактным).

8. Оптимизация это специализация: если вам нужно больше скорости, пишите кастомный код.

9. Должен быть только один язык программирования для всего. Этот язык — Nim.

Читать далее
Total votes 18: ↑15 and ↓3 +12
Views 6.3K
Comments 24

Закон Кёрли: Делай что-то одно

System Analysis and Design *Designing and refactoring *Reading room
Sandbox
Translation

В статье "Пережить великую нехватку переменных" (Outliving the Great Variable Shortage) Тим Оттингер формулирует закон Кёрли:

«Переменная должна означать только что-то одно. Она не должна означать "что-то при таких-то условиях" и иметь разный смысл в разных обстоятельствах. Также она не должна иметь два смысла одновременно. "За двумя зайцами погонишься – ни одного не поймаешь". Переменная должна означать что-то одно все время своего существования»

Читать далее
Total votes 11: ↑10 and ↓1 +9
Views 16K
Comments 3

Советы по проектированию интерфейса. Часть 1 — Гештальт

Web design *Usability *Mobile applications design *Graphic design *Design
Tutorial

Если ты часто задаешь себе вопросы вроде: Правильно ли я собрал главную страницу? Каким способом лучше выделить кнопку СТА чтобы она не потерялась во множестве объектов? Как направить пользователя в нужное место и управлять его взглядом? То попробуем разобраться вместе : )

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

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 3.8K
Comments 5