Pavel
Суть - умеит притворяться ооп
Pavel
Но без тулинга с проверкой типов, статического анализа, бесполезно.
Чисто визуальный сахар
Pavel
(кстати ппц как нехватает статического анализа....)
Snusmumriken
Не забываем что в тех же питонах и жаваскриптах надо делать то же самое, системы статических типов и компиляции нет. Просто там это вшито, а тут надо накатать/заюзать либу.
И, как и в статически типизированных языках, надо предварительно проверять всё на nil/null.
Snusmumriken
Всё современное программирование это проверки на null, и проверки проверок на null : )
Pavel
Pavel
Понятно что модно написать статический анализатор самому.
Но он будет работать только для тебя. И твоего проекта. И твоего описания классов. Трейтов|миксинов|интерфейсов|базовых классов
Snusmumriken
Ну кстати иногда действительно было бы неплохо, если бы библиотеки "стандартизированно" выдавали классы и объекты, и можно было бы хотя бы чекать чем-то таким:
local sock = socket.tcp()
...
if getmetatable(sock).__index = socket.tcp then ... end
Но библиотекописатели делают реально много вариаций: функции которые производят объекты-таблицы, функции которые производят объекты-userdata, __call-таблицы которые производят объекты, и таблицы-классы могут быть тут, могут быть там, могут быть скрыты, могут быть открыты и т.д.
Другое дело что это документируется.
Pavel
Snusmumriken
Ну типа библиотека сокета возвращает или что-то конкретное, или nil и ошибку. И при всех трансформациях этого объекта (master в server/client) тоже возвращает true или nil + ошибка. Всё можно проверить, всё задокументировано. Но для сокета понадобятся одни проверки, а для библиотеки json, например — другие, унификации нема.
Snusmumriken
Сишка отличается чем-то похожим, но там статик-типизация.
Serezha
если верить исследованиям - динамический код, покрытый тестами, содержит то же самое кол-во ошибок что и на статических языках, покрытых тестами
Serezha
если не хватает типизации - можно взять другой язык :)
Serezha
будете потом плеваться от дикого количества бойлеркода
Snusmumriken
Динамический, правда, обычно можно манки-патчить, и получать миллиард новых, не покрытых тестами ошибок : )
Lucky
как будто это что-то плохое
Snusmumriken
Но да, всё как всегда. Если язык позволяет делать кошмар — это проблема не языка а дисциплины писателя.
Lucky
есть баги - нудны погромисты
Lucky
погромистам плотють зарплату
Lucky
с неё платятся налоги
Snusmumriken
Погромисты делают новые баги, снова нужны погромисты и деньги и зарплаты и нологи
Lucky
так заживём!
Lucky
поднимем реальный сектор экономики
Snusmumriken
Исключительно на собственных багах!
Lucky
<sticker>«Пиши на Lua, будь мужиком!» </sticker>
Anonymous
Есть статически типизированные программы, для которых доказуема корректность.
Более того, если система типов языка достаточно богата, то бойлерплета не будет. Даже с++ сейчас поддерживает конструкции навроде
decltype(declval(MyType()) + TAddable)
Anonymous
Достаточно не пользоваться говном мамонта типа дотнета
Anonymous
Где вся система типов это приписанные к объектам метки
Anonymous
Языки так называемые си-подобные в отличие от самого си это как реоэнцефалография - устаревший еще до своего создания продукт
Anonymous
А подскажите товарищи. Каким технологиям (языкам , инструментам ) разработки лучше отдать предпочтение при разработке высоконагруженной площадки агреггатора типа marketplace. Аггрегация прайс листов магазинов (от 100000 позиций один прайс лист), представление всего этого дела , а-ля (грубо) ya.market. Инструменты торговли для продовцов и конечных покупателей и вот это вот все. Хочется не сделать фатальную ошибку и понять на чем лучше делать бэкэнд, на чем фронтэнд (исполнители наемные и предлагают разные технологии), чтобы потом затраты на эксплуатацию были поменьше, чтобы технология была не мертвеннорожденная и были специалисты на рынке по вменяемой стоимости, которые смогут это дело сопровождать и допиливать.
Serezha
Anonymous
Вменяемой будем считать среднерыночную стоимость
Serezha
Если речь про Москву то разброс по окладам не очень большой для грамотных спецов - PHP, Python, Go... обойдутся вам в 120-150-170 за голову нетто
Anonymous
Интересно почему python дороже php
Serezha
Кто сказал что дороже
Serezha
Я сказал одинаково
Serezha
В Москве куча мест где грамотных пыхеров ждут на 200
Anonymous
От одних исполнителей есть предложение делать на .net
Anonymous
Вот думаю , не рискованно ли это
Anonymous
Anonymous
Собираю разные мнения
Anonymous
Если бы вы (присутствующие здесь люди с опытом) отвечали за архитектуру будущего решения - к каким технологиям вы бы склонялись ?
Serezha
найдите техдира лучше
Serezha
собирать на базаре мнения непродуктивно
Serezha
Если говорить за монстров в близких нишах - там в основном все на PHP и кусочками переезжает на что то более модное. Но ядро все равно на ПХП у всех - Озон Ламода итд
Serezha
Авито ипр
Anonymous
Под ядром имеется ввиду бэкэнд ?
Serezha
ну да
Anonymous
Спасибо за информацию !
Serezha
Yuriy
Anonymous
Ну может он хочет сразу нормально
Anonymous
Чтобы потом разрабы не плевались
Anonymous
На переписывание может быть сложнее найти работника
Anonymous
Всем спасибо за высказанные мнения
Saphire
@Snusmumriken может стоит @xenfbot ?
Snusmumriken
На переписывание может быть сложнее найти работника
Да ладно, ну будет кривоватое лигаси, потом на этом будет настроена куча такой же кривоватой фигни. Но пока оно будет приносить бабосы, сложностью разработки можно слегка пренебречь. Главное — не профукать данные, остальное частности.
Так что v1.0 — превалирует над всем остальным. Выбор инструментов зависит от того что ты нагуглишь и собственного кошелька.
Anonymous
Ему же надо высоконагруженное он говорил
Anonymous
Снус , блин , ты посылаешь нетехнического человека в гугл? За выбором технологии?
Snusmumriken
Дык открывается гугл, там ищется "высоконагруженные системы дёшево", в гугле советуются какие-нибудь нгинксы-опенрести-редисы и технологии шардирования-мап-редьюса. Собираем всё в кучу, мутим лигаси, получаем v1.0, рекламируемся, получаем бабосы.
Snusmumriken
Хех, если что, всякие "серьёзные проекты на миллионы вложенных бабосов и с кучей сертифицированных специалистов" делаются примерно так же, только с большим количеством понтов и попыток удержать проект от скатывания в лигаси, но не очень удачно.
Anonymous
Anonymous
А ты хорош!
Saphire
Snusmumriken
О, кстати да.
Saphire
"о я знаю этот интерфейс"
Saphire
"а эту менюшку вон там я пилила 20 часов"
Snusmumriken
А ты хорош!
В своё время успел поучаствовать в конференциях со вкладчиками. Толпа кодеров вокруг, рисуют на бумажке схемы, вкладчики (которые в этом ничего не понимают) кивают бутоном и опрашивают манагеров на тему "как это вообще может приносить бабосы и окупится ли оно вообще", те делают радостные лица и вопят "разумеется да, только дайте нам побольше денег". Составляется график работ, где в две недели надо уместить работу, обычно выполняющуюся в течение полугода. Схемки и графики кодеров оказываются фикцией для создания атмосферы. На тесты можно забить. Никто реально не понимает что надо сделать, то что через пол года выдают как версию 1.0 оказывается v0.3.426874-alpha2, ничо не работает, выгоревшие кодеры плавно убегают, менеджеры ищут ещё больше денег и работников. Примерно так работают стартапы в снг.
Saphire
Так они так везде работают
Anonymous
Лучше корпоративный булщит чем так
Anonymous
Еще и с зарплатой не обманут
Snusmumriken
Корпоративный примерно такой же, но больше пафоса и манагеров. Но да, с зп обычно не обманут.
Saphire
*жуёт попкорн с оутсорсинговых галер*
Snusmumriken
Я такой сижу на полставочной удалёнке в маленькой конторке, где всё делается о-о-очень ме-е-е-едленно и лениво, когда раз в несколько дней звонит начальник и спрашивает "есть чо? давай пили быстрее, ёптыть", и думаю что я зажрался.
Saphire
Snusmumriken
Ну вот та же фигня, 12-15 часовой рабочий день бывает, но редко.