Это ужасный (но очень полезный) хак, который я придумал для добавления типов в старый код. Вчера мой коллега, работающий над добавлением типов в одну из наших основных библиотек на LinkedIn, спросил меня, как быть со старым (и уже не рекомендуемым) паттерном. В качестве одного из вариантов решения мы попробовали применить утверждающую функцию. вразрез с её предназначением. В конечном итоге нам не удалось добиться конкретно желаемого 1, но мне этот паттерн показался достаточно интересным, чтобы им поделиться.Читать полностью »
Рубрика «Программирование» - 51
Нецелевое использование утверждающих функций в TypeScript
2022-05-08 в 10:00, admin, рубрики: assertion function, ember, javascript, linkedin, ruvds_перевод, TypeScript, Блог компании RUVDS.com, ПрограммированиеЭто ужасный (но очень полезный) хак, который я придумал для добавления типов в старый код. Вчера мой коллега, работающий над добавлением типов в одну из наших основных библиотек на LinkedIn, спросил меня, как быть со старым (и уже не рекомендуемым) паттерном. В качестве одного из вариантов решения мы попробовали применить утверждающую функцию. вразрез с её предназначением. В конечном итоге нам не удалось добиться конкретно желаемого 1, но мне этот паттерн показался достаточно интересным, чтобы им поделиться.Читать полностью »
Как нативно визуализировать голос в iOS
2022-05-07 в 12:35, admin, рубрики: avfoundation, SURF, surfstudio, Блог компании Surf, звук, звукозапись, Программирование, разработка мобильных приложений, разработка под iOS, разработка приложений, физикаПредставьте, что у вас в приложении есть чат. В один прекрасный день на встрече отдела product manager приносит весть, что пора бы в чат добавить поддержку голосовых сообщений. «Да легко!» — проносится в голове: быстренько создадим новую ячейку, нарисуем в ней плеер, напишем бизнес-логику и готово. Но вдруг оказывается, что заказчик хочет плеер «как в Telegram» — с поддержкой отрисовки аудиоволны. Да ещё и динамически — в процессе записи.
Визуализатор для ZX Spectrum и MSX или с Днем Радио, Гики
2022-05-06 в 21:09, admin, рубрики: demo, demoscene, diy или сделай сам, MSX, zx spectrum, визуализация данных, Демосцена, математика, ПрограммированиеСегодня принимают поздравления с профессиональным праздником некоторые гики, ну и чтобы поднять настроение себе и остальным, захотелось поделиться историей создания красочного, светодиодного, радиотехнического… И да! для вечно живого Z80!
Если вы не представляете, что ещё можно такого придумать для Z80 в XXI веке, прошу под кат...
SOLID – это не правила, а гайдлайны
2022-05-02 в 9:26, admin, рубрики: C#, di, KISS, solid, YAGNI, Блог компании Издательский дом «Питер», интерфейсы, ооп, Программирование, Проектирование и рефакторинг, Совершенный код, чистый кодВ этой статье автор высказывает личное мнение, сформулированное на основе его собственного опыта и вкуса. Поэтому просьба не обижаться, если вы с ним не согласны. Конечно, оно может быть ошибочным – но это и стоит обсудить.
Что такое SOLID ?
Лексический анализ в 11l
2022-04-30 в 21:00, admin, рубрики: 11l, bilingual article, двуязычная статья, Компиляторы, ПрограммированиеЗадача лексического анализатора заключается в том, чтобы разбить исходный текст программы на лексемы или токены.
Так, например, код
print(1 + 2)
будет разбит на лексемы
print
, (
, 1
, +
, 2
и )
Читать полностью »
Интеллектуальный брутфорс: пишем головоломку и солвер для неё
2022-04-30 в 18:39, admin, рубрики: Rust, Блог компании Билайн Бизнес, головоломка, Занимательные задачки, игры, Игры и игровые консоли, информационная безопасность, Программирование, разработка игрНебольшое предисловие
В колледже я много играл в головоломки. В статье под головоломками я буду подразумевать очень узкое подмножество таких игр. Вот некоторые из примеров:
Также мне посчастливилось изучать структуры данных в Политехническом институте Ренсселера, где в то время студенты профессора Катлера (привет, Барб!) ежегодно участвовали в соревновании по написанию солвера головоломок. Каждый год игра менялась, и в мой год это была Ricochet Robots, которая по сути является головоломкой со скольжением по льду для нескольких игроков. Мне очень понравилось это задание (и я победил в соревновании!), после чего я продолжил участвовать в соревнованиях в качестве ассистента преподавателя.
Цель этой задачи заключалась в том, чтобы познакомить всех с рекурсией и поиском в глубину. Программе передавались исходное состояние игры, а также максимальная глубина рекурсии. Необходимо было вернуть или кратчайшее решение или все возможные решения минимальной длины. В соревнованиях игрокам могли или сообщать, или не сообщать предел глубины; кроме того, возможны были головоломки, не имеющие решения. Я многому научился и получил кучу удовольствия, так что, возможно, вам это тоже понравится.
Читать полностью »
Как развиваться программисту, не меняя работу
2022-04-30 в 15:39, admin, рубрики: html, pet-project, Блог компании Школа Loftschool, наставничество, опенсорс, пет-проект, преподавание, Программирование, развитие программиста, резюме, собеседования, удаленная работа, фриланс, хакатонМожно ли расти профессионально, не меняя работу. Думаю, я не одна, кто задавался этим вопросом.
Динамика в деле: интерактивные графики в Dash
2022-04-30 в 10:18, admin, рубрики: Dash, python, визуализация, визуализация данных, график, данные, ПрограммированиеDash представляет собой фреймворк для визуализации данных и построения веб-приложений, понятен и довольно прост в применении. Может быть интересен тем, кто хочет использовать интерактивные графики для анализа данных с помощью Python. Рассмотрим построение таких графиков с применением обратных вызовов в Dash.
Упрощение сложной фильтрации в LINQ с помощью шаблона «Спецификация» и библиотеки XSpecification
2022-04-30 в 8:13, admin, рубрики: .net, C#, Программирование, Проектирование и рефакторинг, шаблоны проектированияКак гласит Википедия:
«Спецификация» в программировании — это шаблон проектирования, посредством которого представление правил бизнес логики может быть преобразовано в виде цепочки объектов, связанных операциями булевой логики.
Реализация и преимущества данного шаблона уже были описаны в нескольких статьяхЧитать полностью »