Обновить

Как в Java скрыть даже от разработчика поле, доступ к которому должен осуществляться с помощью геттера и/или сеттера

Много написано о том, что хорошей практикой является объявление полей экземпляра класса с модификатором private, а чтение и модификацию их осуществлять с помощью public геттера и/или сеттера. Действительно, этот приём даёт уверенность, что вся логика, предусмотренная разработчиком для событий чтения/записи, будет выполнена в случае использования класса кем-либо. Однако, разработчик класса в методах по-прежнему имеет возможность читать и записывать значение поля напрямую! Чтобы избежать этого, предлагаю следующий трюк. Потребуется чуть больше кода, но теперь даже IDE не сможет подсовывать это поле в подсказках.

Для каждого "super private" поля нам потребуется Supplier и Consumer. Вся логика геттера и сеттера происходит в них. Сами геттер и сеттер - лишь обёртки для public доступа.

Всё понятно из примера ниже.

Читать далее

Событие изменения ячейки DataGrid WPF C#

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

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

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

Читать далее

Маркетант расправил плечи, или Удаленная жизнь

Маркетант расправил плечи, или Удаленная жизнь 

А часто вы вспоминали жутковатый телесериал-антологию Black Mirror, который завершился в 2019 году будто лишь затем, чтобы реинкарнировать в следующем – уже гайдом по аналоговым фобиям человечества, предшествовавшим эпохе цифрового абсолютизма? Реинкарнировал и выдал мокьюментари “2020” о совершении массовкой фаталити против здравого смысла: прозябание, паника, обереги (они же медицинские маски) по карманам. И в нём только атлантам маркетинга окажется по плечу абсолютно всё и даже будущее…

Читать далее

Должен ли веб-разработчик заниматься UX/UI-дизайном?

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

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

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

Моя жена вот уже полгода учиться на UX/UI-дизайнера в Яндекс.Практикуме. Я вижу, какой огромный объем работы она проделывает, выполняя задания в рамках своих спринтов (боюсь представить, что будет на дипломе, на который она выходит через неделю). И я понимаю, что если пройтись по верхушкам, то может получиться красивый и вроде бы даже качественный продукт. Но будет ли он удобным для большинства?

Читать далее

Концепция Pusa — WEB без JS Front

Концепция Pusa переносит разработку на Back-end, исключая работы JS для Front-end. Управление браузером и DOM элементами, бизнеслогика выполняются на Back-end. Разработка JS для Front отсутствует. PUSA может быть реализована на любом Back-End PHP, JS, Java, Go, Ruby, etc.

Читать далее

unity 2d bolt движение по лини взгляда

Решил поизучать unity и пришла идея попробовать сделать шутер с видом сверху и столкнулся с проблемой. А как заставить персонажа двигаться по направлению взгляда?В итоге пришел вот к этому.

Читать далее

Блеск и нищета отчётов

Есть два подхода к отчётам: правильный и неправильный.

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

Читать далее

Использование ИК пульта от мини вертолета для поделок из Ардуино

Протокол данных IR пульта от китайского вертолета.

Выбор пал на IR пульт от вертолета. Найдя единственную статью размноженную десятки раз с описанием протокола связи сел за паяльник и начал ваять. Но не тут то было оказалось что не все китайские вертолеты «одинаково полезны». Протокол, описанный в этой статье, не подошел к моему пульту.

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

В моем пульте кодировка идет не только паузами между сигналами но и длительностью сигнала.

Читать далее

О первопричине старения живых организмов

Единство химического состава живой и неживой природы. Углерод – главный элемент жизни. Физико-химические причины разнообразия органических соединений. Старение химических элементов и химических соединений

Все живые организмы, включая растений, характеризуются единством своего химического состава и содержат выборочно, в тех или иных соотношениях, химические элементы ХЭ из того же базового набора атомов, что и объекты неживой природы. Этот набор, начиная с водорода с номером ZH=1 (впервые был получен в 16-м веке, а признан в качестве ХЭ – “горючего воздуха” - в 1766 г.) и заканчивая плутонием с номером ZPu=94 (впервые получен как искусственный радиоактивный элемент – его период полураспада 24 тыс. лет - в 1940 г., а позже был обнаружен в природе, в урановых рудах) содержит 94 природных видов атомов (без учета 24 искусственно полученных радиоактивных короткоживущих изотопов ХЭ с номерами Z=95,...,118: например, ХЭ с номером 118, синтезированный в 2002 г. и обозначаемый как Og, Оганесон, имеет период полураспада ~1 мс). Все эти ХЭ упорядочены в Периодической таблице элементов Д.И. Менделеева (ПТЭ) по возрастанию их номера, атомного числа, или зарядового числа Z, соответствующего количеству протонов в атомном ядре АЯ элемента, положительный заряд каждого из которых равен Ze, где элементарный заряд e эквивалентен по величине заряду электрона e-, но противоположен ему по знаку. Заряд АЯ определяет структуру электронной оболочки ЭЛО атома и, следовательно, его химические свойства, поскольку связи в молекулах между атомами основаны именно на взаимодействии внешних частей их ЭЛО.

Читать далее

Promise — краткое руководство

Краткое описание жизненного цикла Promise и сравнение основных методов Promise.all(), Promise.any(), Promise.race(), Promise.allSettled().
Статья рассчитана на начинающих специалистов но возможно будет полезна и более опытным разработчикам.

Приятного Вам чтения...

Не упасть с «Эльбруса», не утонуть в «Байкале», не попасться «Скифам»

Очень радует, что последние годы российская микроэлектронная отрасль начинает возрождаться, и теперь российские сборщики компьютеров для нас с вами и даже серверов для крупных предприятий могут рассчитывать на отечественных производителей чипов и плат! Кто же они, эти скромные «герои нашего времени», которые куют независимость России от импортной электроники, на которых мы сможем положиться в плане компьютерной безопасности, отсутствия в чипах «закладок» и других сюрпризов, которыми нас пугают эксперты по этой самой компьютерной безопасности?

Читать далее

Маст-хэв инструменты и ресурсы для Front-end разработчика в 2021 году. Часть I

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

Читать

Если бы я был HR

Всем привет! Как говорится: есть только один шанс, произвести первое впечатление. Как не крути, базовые инстинкты никто не отменял, а большую роль при выборе компании играет именно - первое впечатление. Пока маркетологи и PR занимаются раскруткой веб-страниц и аккаунтов в соц. сетях, я считаю что и HR-ом тоже нужно заниматься развитием, в плане изучения актуальных технологий и новостей в сфере IT индустрии. Поверьте, если при знакомстве с рекрутером разработчик слышит для себя знакомые термины, то они будут на одной волне и здесь даже заговорит самый ярый интроверт, а таких в наших рядах очень много.

Я не собираюсь объяснять как общаться с кандидатами, я не сотрудник отдела кадров. Но я могу рассказать о чем можно с нами поболтать на первом собеседовании.

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

Читать далее

Custom-size component Figma | Изменение размера элементов внутри копий компонента фигмы

В Figma невозможно менять размер элементов внутри копий компонента. Один из способов решения этой боли - изменение размера «‎начинки» через расстояние между объектами. Об этом и пойдет речь в этой статье.

Читать далее

Начал в нейросети (EugeneBrain v0.2)

Я - очередной недопрограммист, решивший попробовать себя в нейросети и машинное обучение (даже не шарю, в чем отличие). Эта статья - есть отчет по моему старту в этом пути. И вы ее можете даже ткнуть меня мордой в места, где я сделал не так.

Читать далее

Способ исследования текстов на японском языке с помощью Voyant Tools

Эта статья будет полезна тем, кто работает в YouTube с большими объемами японского текста. Мы расскажем как с помощью программы Voyant Tools легко провести анализ.

Читать далее

Карантин, кризис, бэкендеры

2020.03.15 – президент Казахстана Касым-Жомарт Токаев подписал указ о введении в стране  чрезвычайного положения на целый месяц (тогда казалось это много) – с 16 марта по 15 апреля 2020 года.

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

Читать далее

Крутая продажа в фильме «Волк с Уолл Стрит»: все ли так в реально, как в жизни?

Наверное, все, кто занимается продажами, смотрели фильм «Волк с Уолл Стрит», в котором прекрасный актер Ди Каприо блестяще демонстрирует телефонную продажу. Хочу высказать свое мнение на сей счет.

Читать далее