- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Давным-давно( сегодня, неск. часов назад )
В одной уютной-приуютной группке( https://vk.com/topic-30666517_29088463?post=448559 ),
Разумеется, даже нифига не в предназначенной для этого ветке,
Очередной "отче программирования, ментор и просто_великий_гуру"(тм),
Ну_так_уж_и_быть, соизволил искать себе паству, да всерьёз гитхабами мериться.
https://github.com/AndreyMashukov?tab=repositories
Посоны, я, кнчн., всё понимаю( аки пьос, Гы ), но..
Разве "Это норма"(тм) всерьёз вываливать в репозитории дерьмо вида:
Целый_распрекрасный_класс_для_сравнения_мать_их_двух_строчек_текста:
https://github.com/AndreyMashukov/comparison
В этой срани многие десятки папок и файлов разных расширений
Даже какие-то говнотесты затолкнуты..
И всё это для целого_мать_его_говнокласса( 180 строк )_что_сравнивает_ровно_две_ср.ных_строки !
К сожалению, такие объёмы дерьма даже на Говонокод одним "заходом" не уместятся.
Ситуацию сильно упростило хотя бы наличие возможности норм вставить скрины и ссылки, но.. крч., итааксойдёт
п.с: не покидает ощущение, что лучше вообще быть без гитхаба, чем иметь такой - будто бы, есть вероятность даже не до нуля скатиться при поиске серьёзной работы и конторы, а, даже в "минус" уйти ( т.е с ним шансов даже меньше, чем вообще без него ).
А если серьёзно, то гитхаб имхо не для того чтобы пиписьками меряться, а хранить и делиться кодом. Бесят те, кто не выкладывают свой код только потому, чтобы не засирать свой говнопрофильчек непристойными проектами или великами.
Объясни зачем форкать репу и не коммитить туда никогда? Я правда не понимаю, открой секрет. И таких 95% профилей что открываю.
Я вот форкнул Linux, и теперь все думают что системный программист.
А по факту я ничего сложнее тетриса на сях не писал
Дык в том и прикол.
Если речь о каком-то серьёзном проекте, под него обычн. даётся подписка о неразглашении.
Если речь о каком-то серьёзном собственном общедоступном проекте( для чего гитхаб по субъективному и нужен ) - дык до него дорасти надо( т.к в противном случае, УЖЕ есть куча аналогов, зачастую, ощутимо лучших по реализации. Или, привет "не стоит плодить сущности без крайней на то необходимости"(С) ).
Если речь о дерьме - дык его у себя на ПеКе можно локально хранить, но никак этим не хвастать и всерьёз заявлять о нев.ебенном_присутствии_на_гитхабе.
В противном случае - имеем то, что имеем.
Невообразимые объёмы говн в сети, на фоне которых тупо теряется та малая часть чего-то действительно крутого и годного.
Невообразимые объёмы говн в головах благодаря таким_вот_знатокам_проги и тем, кто им поверил по необразованности( будучи совсем новичками ).
Охуенная документация.
>> retutn
Интересно, а у него есть тесты, тестирующие комментарии?
А он понимает, что не ко всем функциям нужна документация (к реализациям виртуальных методов, например)? Или вынуждает писать кэповские комменты всегда и везде?
К слову, такие комменты в скриптушне, не позволяющей указать в сигнатуре принимаемые и возвращаемые типы, на самом деле не такие уж и кэповские.
https://ideone.com/izZjgO
Обратите внимание на первый нотис - указывается не строка неправильного вызова функции, а строка ее объявления.
Т.е. эта хрень просто добавляет в начало функции проверку и нотис?
Да, будет проверка типа и автоприведение при необходимости...
... НО только если в файле, в котором вызывается функция не прописан declare(strict_types=1);
... НО это верно только для скалярных типов, для остальных при несоответствии типа всегда будет фатал еррор...
... НО только до пхп7, поздние версии кидают исключение...
... НО есть еще говнотип resource, мимо которого вся эта вакханалия прошла мимо...
Открытые файлы и т.п.?
Да, обычно используется для дескрипторов открытых файлов.
http://php.net/manual/ru/language.types.resource.php
В отличие от нормальных объектов, для похапешника ресурсы — это чёрные ящики.
пример сильной статической -- Ocaml
Если не написать к нему комментарий (написать только тип возвращаемого значения), то он ругнется. Ты идешь и пишешь кеповский коммент "Convert to string". Это всё настраиваемое, конечно.
Оффтоп: кмк, идея с toString() в жабе изначально кривовата, как всё в джаве. Почему бы не сделать что-то вроде appendTo(Appendable) / appendTo(StringBuilder) и всего одну функцию toString(), чтобы тыщи промежуточных строк не склеивать на каждый чих? Слишком похоже на C++, а C++ — это плохо?
Но в жабе не сделать полиморфный список, примитивы типа чисел придётся конвертить в объекты или строки. Да и сами ноды списка надо аллоцировать. Поэтому подход со СтроителемСтрок, походу, самый эффективный.
А вообще, сама идея одного метода для "преобразования в строку", имхо, порочна. В строку, которую можно будет потом распарсить в такой же объект? В строку, которую можно записать в лог? В строку, которую можно показать юзеру в интерфейсе (с локализацией)?
Это можно вычеркнуть, ибо за такую сериализацию нужно бить.
> В строку, которую можно показать юзеру в интерфейсе (с локализацией)?
Тоже попахивает.
Остаются только логи или, возможно, конфиги внутренние.
Но жабисты уже сделали пару (valueOf, toString), которая для некоторых типов работает именно как сериализация.
> Тоже попахивает.
Но в с# умудрились запихать это говно по-умолчанию.
О чем я и пытался сказать: абстрактное "преобразование в строку" для хуй-знает-какой-цели - это говно. Надо было сразу декларировать, что оно только для логов.
> Надо было сразу декларировать, что это только для логов.
подразумевается здравым смыслом. Никто в здравом уме не экспортирует какие-то внутренние структуры данных наружу или в персистентное хранилище напрямую. Первое изменение кода все эти toString/valueOf превратит в тыкву.
> Но в с# умудрились запихать это говно по-умолчанию.
В MS своя атмосфера.
Сразу прочиталось "повально все в практике". Смысл остального комментария не поменялся.
первая ссыль
Cтрах перед драгунами становится причиной повального обращения в ... дабы избежать грабежей и насилия, но на практике все происходит иначе
Какой-то смысл он имеет только для датаклассов (тупых таких структур).
В C# и Kotlin вроде он выводит все поля для них.
Ну в первом релизе был StringBuffer, который тоже с первого раза сделать нормально не смогли. Фейл за фейлом...
Разве что перестарались с синхронизацией. В остальном же они одинаковые?
https://www.bleepingcomputer.com/news/security/iterm2-leaks-everything-you-hover-in-your-terminal-via-dns-requests/
Только приватные ключи, только хардкор. Причем внутрь файлов с ключом лазить вообще не надо.
А вдруг у меня там ext2? Если это специальная флешка для ssh - вай нот?
Какой буквой обозначить время ответа DNS сервера?
Чото я хуйню какую-тонаписал
Зато теперь синхронизированный класс StringBuffer а обычный StringBuilder.
Очень логично же. Принцип наименьшего удивления
Да это же настоящее программирование на HTML!
chmod +x, не?
может, install(1) хотяб?
maven , graddle, brew, pod, дальше кто?
а вообще первым был cpan. В 90-е все депенденсы вручную копировали (только apt-get был, и вероятно bsdшные порты) а cpan уже был
nix, guix?
кал из палаты мер и весов
Есть ли в мире что либо более блевотное, чем пхп?
I am Groot.