Люблю делать UI и офисные приложения
Information
- Rating
- 787-th
- Location
- Россия
- Registered
- Activity
Specialization
Software Developer, Application Developer
HTML
CSS
JavaScript
Windows API
C++
UI/UX design
Interface development
Product Design
Adobe Photoshop
Designing interfaces
А это ООП или функциональщина?
Вам нужны?
А мне они нужны, чтобы сразу видеть, что к чему относится, когда я знакомлюсь с проектом. А то на собеседовании наобещают: наш код неплохой, только
ссытся и глухойзлоупотребляем кодами возврата, а как откроешь первый раз кодебазу, так поседеешь.В языке нет, и неизвестно когда будет (сам удивляюсь). Но есть внешние реализации в соответствии с пропозалом. Я остановился на этой (https://github.com/shuckster/match-iz), чего и всем рекомендую.
По существу вопроса. На практике одна из важнейших частей джаваскрипта — DOM, формально даже не входящая в язык. Так вот, она прискорбно нефункциональна (императивна).
https://finance.yahoo.com/news/nvidia-stock-plunges-14-big-125500529.html
Вы не
Гуглкоманда Linux. Если бы вы были командой Linux, вы бы написали ядро, которым пользуются миллиарды, и не запутались даже без классов, обходясь техниками типа дескрипторов. Если вы его не написали, смиритесь, что вы средние программисты, которых окружают средние программисты, и пишите простой и понятный код с классами, чтобы его мог понять даже я.Я, в детстве встававший в шесть утра, чтобы пойти с тётей на завод к знакомым инженерам и два часа поработать на 286AT:
Да, дело не в грибах и эльфах. А в том, что он на старости лет крепко рассорился с головой. Очень жаль, между прочим: голова у него умная. Я на него был подписан на SO и с удовольствием читал его ответы. Что с ним случилось, интересно. Попал в ДТП? Вынюхал килограмм кокаина и сжёг свой мозг?
Скажите, вы правда думаете, что Несовершеннолетний — это отдельный таксон Человека? Я имею в виду, по жизни? Вообще-то, DDD прямо запрещает такое наследование (наследование это закрепление в коде отношений «общий случай» → «частный случай»). Оно говорит: да, формально вы, конечно, можете ТАК классифицировать, ведь логика не запрещает. Но поскольку в первоисточнике так НЕ классифицируют, делать это не надо, а надо скопировать классификацию из оригинала. По сути, DDD это не какая-то заумная методология, а простой совет, который на дворовом языке звучит так: кодерок, не вы..уйся, а пользуйся классификациями, которые придумали люди поумнее тебя. Так ты от себя не добавишь ошибок.
А в оригинале (законах) несовершеннолетний — это самый настоящий человек. На которого иногда законом налагаются какие-то ограничения. Иногда это ограничения по возрасту (нельзя покупать алкоголь и голосовать). Иногда это ограничения против личности (издан судебный запрет продавать алкоголь Джону и Джону подходить к дому Мэри ближе, чем на 100 метров). Почему так сделано, легко догадаться. Потому, что когда Джону исполняется 16/18/21, он не переходит в новый таксон. Что это за классификация вообще такая, если в ней изначально заложено противоречие?
Если программист следует чужой классификации, он избегает этой проблемы даже не напрягая головушку. Классы у него в коде — величина неизменная, и что делать, если инстанс “John” переходит границу совершеннолетия прямо в момент транзакции? Что делать с ORM, которая в этот момент инвалидируется? А что делать с изменениями границ возраста в законах, которые инвалидируют целую базу? Пересчёт вручную? Если бы для класса Человек были сделаны: 1) проверка правил, в т.ч. по возрасту, 2) проверка по id (можно Driver ID, лол) на включение в справочник запретов (судебных ордеров), проблем бы не возникло.
Наверно, потому, что (в отличие от дотнета, например) нет перегружаемого
.equal()
на базовом уровне.Так а я разве спорю? Именно виртуальная машина. И именно динамически типизированная. Поэтому делать статически типизированный язык под динамически типизированную ВМ это как получать солнечные лучи из огурцов.
Об этом и была картинка. (На самом деле, это кадр из видео).
«100 тысяч строк на скриптах» как-то не вяжется с «верным выбором».
Я люблю этот язык (ES) и пишу на нём весь UI (разумеется, когда нельзя достичь желаемого на pure CSS, а это не так уж часто). Ещё на нём удобно делать glue для низкоуровневых библиотек, плагины для препроцессоров и макросы для Фотошопа. Но если бы мне пришлось писать на нём бизнес-логику и другие вещи на сотни тысяч строк, я бы сильно огорчился.
В том-то и дело, что ни фига. Вот и пытаются зайти через TS.
Она делает это без уважения!
«Петрович, неужели кто-то ещё на “Трубе” пишет?»
Судя по написанному в пропозале, у него поведение при сравнивании как у сишной структуры: по полям. За счёт этого их можно использовать как ключи в мапах и включать во множества без фактических дубликатов.
Тогда придётся 250$ заплатить самому себе.
Куплю за 250$, когда устройство научится тыкать чем-нибудь острым в жопу (когда пора быть busy, а ты читаешь про всякие гламурные устройства на Хабре).
За такое, в принципе, и 500$ не жалко.
А как эти роботы определяют, что входит в контекст? Эвристики? Или тупо по границам скоупа?
Зачем так сложно? Падает nVidia → утаскивает за собой рынок → вы теряете работу.
Последнее падение им. Дипсика показало, что поза инвесторов (ЕВПОЧЯ) — низкий старт. А пошлины позаботятся, чтобы никто не ушёл обиженным с этого праздника жизни.
Если компилятор заставит написать
foo((unsigned)y)
, чтобы при поиске ошибки у читающего возник вопрос, а почему неfoo(y >= 0 ? (unsigned)y : 0)
(второй 0 можно заменить на логгирование/исключение/::exit(-146)
/whatever), я бы сказал, он свою задачу выполнил.Проверка не является одним целым с вызовом и при очередном рефакторинге может быть (ошибочно) стёрта.
Я бы не назвал такой код «абсолютно валидным и беспроблемным». Если программист хочет взять на себя ответственность — пусть делает это явно.