Как стать автором
Обновить
21
0
Злой Щавель @Ghedeon

Пользователь

Отправить сообщение

Жаргон функционального программирования

Время на прочтение10 мин
Количество просмотров92K


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

Как внедряли Kotlin Multiplatform в Профи

Время на прочтение7 мин
Количество просмотров14K

Привет, Хабр! Я Миша Игнатов, тимлид в компании Профи. Моя команда отвечает за клиентские мобильные приложения на Android и iOS. Мы используем Kotlin Multiplatform в production с 2019 года. Расскажу, почему мы выбрали именно эту технологию, как внедряли её, какие ключевые этапы прошли и какие сделали выводы.

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии8

Слушаем 15 лучших ИТ-подкастов

Время на прочтение5 мин
Количество просмотров43K


Один из признаков настоящего профи — интерес к выбранному делу и готовность узнавать новое, расширяя границы выбранной профессии. Это утверждение на 100% подходит к ИТ-индустрии, которая продолжает стремительно развиваться. Мы выбрали для вас 15 интересных подкастов на эту тему.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+45
Комментарии26

Почему большинство юнит тестов — пустая трата времени? (перевод статьи)

Время на прочтение27 мин
Количество просмотров12K

Перевод статьи "Why most unit testing is waste?"

Автор: James O Coplien, Перевод: Епишев Александр  

1.1 Наши дни

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

Читать далее
Всего голосов 22: ↑15 и ↓7+13
Комментарии38

Практическое руководство по TypeScript для разработчиков

Время на прочтение10 мин
Количество просмотров84K

Представляю вашему вниманию перевод статьи "Working With TypeScript: A Practical Guide for Developers".


Что такое TypeScript?


TypeScript — это популярный статический типизатор (static type checker) или типизированное надмножество (typed superset) для JavaScript, инструмент, разработанный Microsoft и добавляющий систему типов к гибкости и динамическим возможностям JavaScript.


TypeScript развивается как проект с открытым исходным кодом, распространяется под лицензией Apache 2.0, имеет очень активное и высокопрофессиональное сообщество, а также огромное влияние на экосистему JavaScript.


Установка TypeScript


Для того, чтобы начать работу с TypeScript, нужно либо установить специальный интерфейс командной строки (command line interface, CLI), либо воспользоваться официальной онлайн-песочницей или другим похожим инструментом.

Читать дальше →
Всего голосов 26: ↑24 и ↓2+33
Комментарии4

Chia-шиза добралась до России

Время на прочтение2 мин
Количество просмотров64K

Chia — новая китайская криптовалюта, которая майнится на жестких дисках (работает на proof-of-space, а не на proof-of-work). В плане требовательности по ресурсам растет быстрее эфира и намного быстрее биткоина.

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

И теперь — пришло!

Читать далее
Всего голосов 36: ↑32 и ↓4+43
Комментарии191

Переводы малых сумм из Европы в Украину

Время на прочтение2 мин
Количество просмотров10K

Здравствуйте, члены сообщества.

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

Если нужно быстро, то paysend. Если нужны наличные евро, то Privatbank Eur.

Участники: Иностранный банк, Monobank Eur (SEPA), Monobank Uah, PrivatBank Eur, Paysend, TransferWise, MoneyGram.

Читать далее
Всего голосов 16: ↑13 и ↓3+14
Комментарии30

Фоновая работа в Android: обзор возможностей WorkManager

Время на прочтение10 мин
Количество просмотров35K

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

Например, в ритейле мерчендайзерам бывает необходимо в конце каждого рабочего дня отправлять фотоотчеты на сервер и удалять их из памяти телефона, чтобы не занимать место. А для работы онлайн-кассы требуется в фоновом режиме загружать актуальный справочник товаров. В этой статье мы рассмотрим один из самых популярных инструментов для реализации фоновой работы – WorkManager из Android Jetpack. 

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

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

Время на прочтение8 мин
Количество просмотров72K

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

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

Давайте начнем.

Большинство людей испытывает негативные чувства по отношению к своей работе. Они думают, что работа — это что-то неприятное, в отличие от развлечений. Работа воспринимается как раздражающее занятие, которое мешает людям делать то, чем им на самом деле хочется заниматься. Люди также полагают, что отдых и полное безделье — это идеальное состояние, в котором они хотели бы находиться всё время. Такое мышление приводит к тому, что человек начинает думать, что нужно заставлять себя работать через силу, и что работа — это очень тяжело, и лишь железная сила воли поможет справиться с ней.
Читать дальше →
Всего голосов 51: ↑46 и ↓5+57
Комментарии46

[Личный опыт] Удалёнка и жизнь на Пхукете: вечное лето и европейский сервис по азиатским ценам

Время на прочтение12 мин
Количество просмотров29K

Остров Пхукет в Таиланде — настоящий тропический рай с вечным летом, теплым морем и фруктами круглый год. Фрилансеры и удаленщики часто уезжают сюда на зимовку, но это не единственный доступный сценарий. Мы поговорили с Олегом — человеком, который профессионально помогает иностранцам переехать на Пхукет. Он сам приехал сюда в 2013 году, открыл бизнес и не просто зимует, а живет постоянно. Он расскажет, как вообще живется на Пхукете, что тут делать IT-специалисту, насколько легко остаться на ПМЖ и что ждет постоянных жителей и тех, кто хочет приехать на зимовку.




Источник
Читать дальше →
Всего голосов 24: ↑19 и ↓5+19
Комментарии69

Reaction — обработка результатов методов в Kotlin

Время на прочтение4 мин
Количество просмотров8.2K

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

Читать далее
Всего голосов 10: ↑9 и ↓1+15
Комментарии15

Дайджест интересных материалов для мобильного разработчика #384 (1 — 7 марта)

Время на прочтение3 мин
Количество просмотров3.6K
В нашем новом выпуске безопасность iOS-приложений и новинки Android 12, 22 тысячи изменений в дизайне и победа над читерами, история кроссплатформы и Flutter версии 2.0, неэффективные руководители, инди-маркетинг и многое другое!

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Получаем результат правильно (Часть 1). Activity Result API

Время на прочтение7 мин
Количество просмотров56K

Каждый Android-разработчик сталкивался с необходимостью передать данные из одной Activity в другую. Эта тривиальная задача зачастую вынуждает нас писать не самый элегантный код. 

Наконец, в 2020 году Google представила решение старой проблемы — Activity Result API. Это мощный инструмент для обмена данными между активностями и запроса runtime permissions. 

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Как я готовился к собеседованию в Google

Время на прочтение9 мин
Количество просмотров49K
Каждый инженер-программист стремится впечатлить людей своим техническим мастерством. Технологические гиганты этого мира — прекрасное место для работы технарей, которые могут предоставить услуги миллиардам пользователей. На моём недавнем собеседовании было несколько раундов, я получил предложения от Google и Amazon. В последние несколько лет онлайн-сообщество очень помогло мне в подготовке к собеседованиям. В этом посте я поделюсь всем о моём пути к собеседованию и верну вклад общества в моё обучение.


Приятного чтения!
Всего голосов 40: ↑35 и ↓5+45
Комментарии77

Что общего между собеседованием в FAANG и гражданской авиацией

Время на прочтение9 мин
Количество просмотров6.6K

Куда лучше устроиться: в корпорацию или стартап? Этот вопрос волнует не только разработчиков, но и всех, кто так или иначе связан с IT. Мы поговорили с Булатом Фаттаховым, который сменил Яндекс на развивающийся Evolution Gaming, а затем еще пару других компаний и стран прежде, чем оказаться в Google.

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

Булат ― Boston-qualified, Software Development Engineer в швейцарском офисе Google, разрабатывает бэкенд Google Карт, марафонец, игрок спортивной версии «Что? Где? Когда?» и «Своей Игры».

Так при чём здесь авиация?
Всего голосов 10: ↑6 и ↓4+7
Комментарии2

Splay-дерево. Поиск

Время на прочтение13 мин
Количество просмотров9.8K

Наихудшая временная сложность таких операций, как поиск, удаление и вставка, для двоичного дерева поиска (Binary Search Tree) составляет O(n). Наихудший случай случай возникает, когда дерево несбалансировано. Мы можем улучшить наихудший результат временной сложности до O(log n) с помощью красно-черных и АВЛ-деревьев.

Можем ли мы добиться на практике лучшего результата, чем тот, что нам дают красно-черные или АВЛ-деревья?

Подобно красно-черным и АВЛ-деревьям, Splay-дерево (или косое дерево) также является самобалансирующимся бинарным деревом поиска. Основная идея splay-дерева состоит в том, чтобы помещать элемент, к которому недавно осуществлялся доступ, в корень дерева, что делает этот элемент, доступным за время порядка O(1) при повторном доступе. Вся суть заключается в том, чтобы использовать концепцию локальности ссылок (в среднестатистическом приложении 80% обращений приходятся на 20% элементов). Представьте себе ситуацию, когда у нас есть миллионы или даже миллиарды ключей, и лишь к некоторым из них обращаются регулярно, что весьма вероятно для многих типичных приложениях.

Читать далее
Всего голосов 12: ↑9 и ↓3+9
Комментарии2

Программист учится рисовать. Дневник Емели

Время на прочтение16 мин
Количество просмотров35K
Так получилось, что моим основным хобби на лихой 2020-й год стало освоение ремесла рисования.

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

spoiler
В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

image
Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
Читать дальше →
Всего голосов 105: ↑104 и ↓1+142
Комментарии123

Как мы выбрали архитектуру слоя представления на новом проекте и не прогадали

Время на прочтение7 мин
Количество просмотров13K

Всем привет! Меня зовут Даниил Климчук. Год назад я пришел в vivid.money третьим Android-разработчиком. Несмотря на это, в проекте практически не было кода, а первые фичи только начинали разрабатываться. Нам нужно было запустить новое банковское приложение в европе, где придется конкурировать с такими компаниями, как Revolut. Уже тогда было понятно, что команда очень быстро значительно вырастет. Конечно, стоило сразу задуматься о том, как будет развиваться архитектура проекта. Через год, когда проект запустится, на это не останется времени, а оправданий вносить значительные изменения просто не будет. Одним из ключевых решений на начальном этапе стал выбор архитектуры слоя представления. В этой статье я поделюсь тем, как мы его принимали.

Читать далее
Всего голосов 11: ↑10 и ↓1+13
Комментарии9

Претотипирование — новый термин в словаре или как проверить идею очень дешево и очень быстро

Время на прочтение9 мин
Количество просмотров11K

Проблема

У каждого из нас есть не менее одной идеи на миллион. Но далеко не у каждого получается воплотить свои задумки в жизнь. Этому есть ряд причин, о которых написано немало книг и статей. Известно также, что реализовать свои идеи не получается даже у крупных компаний с большим опытом, крутой командой и немалым бюджетом. Для примера можно посмотреть на «кладбище» проектов компании Google или «морг» Microsoft. Трудно представить, что у этих компаний столько много не получившихся проектов, на которые были потрачены немалые деньги и время.

Что делать? Какое решение? В этой статье собрана большая часть методов проверки гипотез, также рассказывается о новом термине «претотипирование» с примерами известных компаний.

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии13

Почему не получается выучить английский?

Время на прочтение3 мин
Количество просмотров44K

Много лет я как преподаватель ломала голову над этим вопросом: почему при равных возможностях (есть время и деньги на занятия, есть желание, способности, прилежание, хороший опытный преподаватель) один ученик достигает результата, а другой нет?

Сейчас в интернете только ленивый не проводит вебинары по английскому именно на эту тему: почему не получается выучить английский. И если вы на таких вебинарах были, или читали статьи на эту тему, то вы знаете, какой дается ответ: потому что нет системы, потому что учили не так, не то и не по тем материалам. Ведущие вебинара рассказывают, как надо, дают и систему, и материалы, и, если мы говорим о действительно опытных профессиональных преподавателях-ведущих, контент их действительно хорош. Обрадовавшись, люди хватаются за эту соломинку, воодушевляются, начинают работать по этим материалам следуя этой системе, но… Результаты вновь неутешительные. И человек приходит к единственно верному, на его взгляд, выводу: я не способен выучить английский. Кто-то одарен. Я – нет. И это понимание ввергает в еще большую депрессию…

А теперь я расскажу вам, что я думаю по этому поводу и отвечу на вопрос Почему не получается.

Сначала я хотела бы сказать вот что. Проблема в самой постановке вопроса: ВЫУЧИТЬ. Почему? Потому что язык – это не знания. Язык - это НАВЫК. И если мы будем относиться к языку как к навыку, то всё стазу встанет на свои места.

Как это сделать?

Во всех своих фразах, мыслях, касаемо английского (или любого другого иностранного языка), заменяйте «английский язык» на любой другой навык, которым вы уже владеете: управление автомобилем, катание на горных лыжах, велосипед, ролики, вышивание…. И давайте послушаем, как это будет звучать:

«Я хочу ВЫУЧИТЬ вышивание»
«Я много лет УЧУ езду на велосипеде»
«Сколько нужно заниматься, чтобы ВЫУЧИТЬ управление автомобилем?»

По-дурацки звучит, правда?

Кто их нас, желая освоить велосипед, чтобы в выходной погожий денек прокатиться в парке в свое удовольствие, часами смотрит видео тур де Франс, читает статьи о велосипедистах и сдает тесты про устройство велосипеда?
А вот теперь получается, что для того, чтобы эти фразы перестали странно звучать, надо заменить глагол:

Читать далее
Всего голосов 46: ↑35 и ↓11+37
Комментарии171

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность