Вперше в Україні! Jeff Atwood, founder @ Stackoverflow — на конференції Highload fwdays
×Закрыть

Начальство против фреймворков. Что делать?

На работе предложил и начал использовать PHP-фреймворк Laravel для нового проекта по разработке API для интеграции с 1С. Сперва начальство поддержало.

Часть API реализовал c исп. Resource Controller и HTTP verbs: POST/PUT/DELETE
пример можно посмотреть тут: gps.debug.world/users/sandbox
не идеал, но как альфа вполне себе.

За это получил выговор и пачку 3.14-люлей что все это неправильно.

дословно:

поэтому не травмируй мозг и делай
return explode($_SERVER[’REQUEST_URI’],’/’);

(кстати там ошибка в порядке параметров, но начальству виднее)
и

вот поэтому если я еще увижу где-нибудь @бучие фреймворки, то буду оч сильно ругаться =(

Может я что то не понимаю, и мне стоит завязать с программированием и ехать в польшу собирать клубнику?

LinkedIn

Лучшие комментарии пропустить

Что делать?

менять работу.

Галера. Синьоры разминают пальцы. Красавец-синьор картинно становится в позы культуриста, растягивая каждое сухожилие, поигрывая мускулами.
Подходит маленький серый погонщик, мнется, начинает (жалобным, слегка писклявым, дрожащим голосом): — Коне-е-е-е-е-ечно... Наверное, на фреймворках будете писать?..
Синьор, басом, красиво выгибая спину: — Ну, да, на фрейморке. Ага. На реакте, да.
Погонщик: — Коне-е-е-е-е-ечно... А потом кому-то поддерживать... искать людей...
Синьор: — да се нормально будет, это мейнстрим, да. Как собак нерезанных спецов. Ага. (тянет мускулистый палец)
Погонщик: — Коне-е-е-е-е-ечно... У вас пальцы во-о-о-о-о-он какие... А у меня мозг ма-а-а-а-аленький, я не подберу нужных, профакапю и съебу-у-у-у...
Синьор: — Так мы тебя, того. Поддержим, да. Порекомендуем друзьям галеру, если что, понимаешь.
Погонщик: — Коне-е-е-е-е-ечно... А они захотят много денег, им не дадут, и меня накаж-у-у-у-ут...
Синьор: — Ну, так возьмете джунов и будете учить. Да. Перспективных джунов.
Погонщик: — Коне-е-е-е-е-ечно... Джуны неопытные, у вас экспертизы вон, какие, а у них ма-а-а-а-аленькие, я не смогу их направить, провал-ю-ю-юсь...
Синьор (похрустывая, разминает пальцы): — Так мы доки тебе оставим. Разжуем всё, да. Будет по написаному писать, да.
Погонщик: — Коне-е-е-е-е-ечно...
Синьор (выпрямившись, глядя на погонщика): — Так. Н@хуй.

ехать в польшу собирать клубнику

Предложите этот вариант начальству

Даже интересно, а что перед «поэтому»?

Что делать?

Дорослішати і вирішити для себе, чого ти хочеш від свого кар’єрного життя. Якщо бачиш себе на цій фірмі, з цим керівництвом і цими задачами — терпи, працюй і не витрачай робочий час на ДОУ,
Як ні — вйо на джин(реклама) створюй анкету і по співбесідам.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Предположу что это не вброс и попытаюсь разобрать кейс...
Интеграция 1С и пыха — значит доместик ритейл (ну или на крайняк интернет магазин). В среднем такая контора имеет до 20 сотрудников всего (не считая персонал на точках если это таки ритейл), из которых айти ну может чувака три. И конкурировать приходится с галерными зарплатами на рынке. Потому единственный шанс конторы найти ребят — это зеленые студенты которые еще вчера лабы на дельфи делали. Эти ребята знакомы с базовыми структурами языка, но вряд-ли со фреймворками. Заинтродюсить фреймворк — поднять сложность и загнать себя в ловушку необходимости дальше хайрить более дорогих спецов. Твой начальник вполне умно экзекьютит стратегию.
Совет конторе — сменить стратегию и отдать на аутсорс/купить под ключ. Ваши студенты вас рано или поздно зафакапят.
Совет студенту — ты уже готов, теперь беги от них дальше и выше.

Мені здається, чи тут ситуація вирвана з контексту?

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

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

Может я что то не понимаю, и мне стоит завязать с программированием и ехать в польшу собирать клубнику?

this

Я с тобою.

Ребята, всем большое спасибо за комментарии! На выходных внимательно прочитаю и дам ответы!

Галера. Синьоры разминают пальцы. Красавец-синьор картинно становится в позы культуриста, растягивая каждое сухожилие, поигрывая мускулами.
Подходит маленький серый погонщик, мнется, начинает (жалобным, слегка писклявым, дрожащим голосом): — Коне-е-е-е-е-ечно... Наверное, на фреймворках будете писать?..
Синьор, басом, красиво выгибая спину: — Ну, да, на фрейморке. Ага. На реакте, да.
Погонщик: — Коне-е-е-е-е-ечно... А потом кому-то поддерживать... искать людей...
Синьор: — да се нормально будет, это мейнстрим, да. Как собак нерезанных спецов. Ага. (тянет мускулистый палец)
Погонщик: — Коне-е-е-е-е-ечно... У вас пальцы во-о-о-о-о-он какие... А у меня мозг ма-а-а-а-аленький, я не подберу нужных, профакапю и съебу-у-у-у...
Синьор: — Так мы тебя, того. Поддержим, да. Порекомендуем друзьям галеру, если что, понимаешь.
Погонщик: — Коне-е-е-е-е-ечно... А они захотят много денег, им не дадут, и меня накаж-у-у-у-ут...
Синьор: — Ну, так возьмете джунов и будете учить. Да. Перспективных джунов.
Погонщик: — Коне-е-е-е-е-ечно... Джуны неопытные, у вас экспертизы вон, какие, а у них ма-а-а-а-аленькие, я не смогу их направить, провал-ю-ю-юсь...
Синьор (похрустывая, разминает пальцы): — Так мы доки тебе оставим. Разжуем всё, да. Будет по написаному писать, да.
Погонщик: — Коне-е-е-е-е-ечно...
Синьор (выпрямившись, глядя на погонщика): — Так. Н@хуй.

где то я их понимаю. забембали уже своими фрейморками

просто по другому не умеют и не хотят получить травму мозга от лишней новой информации

Тебе стоит ехать в более другую компанию, а этому начальству ехать на***.

стоит ехать в более другую компанию

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

Например, C#. В этой экосистеме подобной ситуации возникнуть просто не могло: все платформа — фреймворк. До .NET Core, по крайней мере.

ну без говна на вентилятор трудно, да :)

Мне шутка показалась уместной 😊.

Порекомендовали тогда бы уж Wt сразу.

Не могу рекомендовать то, с чем сам не работал. На самом деле, C# там только из-за .NET Framework.

начальник не всегда прав, но он всегда начальник ©

вам платят за работу? Вот и делайте то за что платят а не то что вам хочется. Если без фреймворков дольше делать значит берете больший срок(то есть больше оплата). Какие проблемы вообще.

Тем более насчет REST запросов начальство право — в теории это выглядит клево но на практике засунуть сложные выборки с разными наборами параметров с примитивные REST структуры проблематично. Не зря придумывают всякие GraphGL.
Это еще могло бы иметь смысл как внешний сервис чтобы разнообразным клиентам было проще реализовывать обмен. Но для внутреннего сервиса это вообще не имеет смысла.
При разработке надо руководствоваться здравым смыслом а не модными фишками.

А GraphGL — это здравый смысл или модная фишка? И где между ними грань?

ну тут уже думать надо и по ситуации смотреть
где-то — модная фишка
где-то — вполне себе здравый смысл и REST здорового человека

Как и очень многие вещи. Интересно было узнать что думает автор по этому поводу.

А если бы вам платили сравнимые деньги за уборку офиса, например, вы бы согласились на такую работу?

кому не нравится пусть ищет другую. По вашему начальство должно подстраиватся под ваши хотелки?
И какая проблема убирать офис за зарплату програмиста? Моя зарплата примерно раз в 10 больше чем уборщицы которая раз в неделю призодит пылесосить. Я б тоже за мою зарплату попылесосил вынес мусор и никакого головняка с проектами, заказчиками....

Проблема в том, что выполняя такую работу вы будете деградировать, как программист. Думаю, аналогия с описанной автором ситуацией понятна.

а может мне и не надо програмирования с такой зарплатой. А может закончивши работу в шесть вечера у меня больше нет забот и я занимаюсь програмированием на фрилансе или имею опенсорс проекты на гитхабе.
Посему возвращаемся к первоначальной идее — не нравится ищи где нравится. На работе вообще редко приходится делать что хочешь и как хочешь. Делаешь то за что платят.
Вообще качать права это особеность доморощеных програмистов. За бугром програмист делает что говорят а не возникает. Мне , работая на аутсорсе в голову не ридет расказывать заказчику как что делать. Я могу описать проблему если она есть, или предложить решение если меня спросят. Не более того. Если заказчик промахнулся то я просто переделываю по другому и выставляю соответствующий эстимейт.

а бугром програмист делает что говорят а не возникает

Это про Индию? А то забугры разными бывают.

Нет не про Индию. Про самый привычный западный забугор. Ишачил в основном на США, Голландию, Англию. Но везде примерно одинаково — есть требования — делаешь, за это тебе и платят.
Это у нас програмист считает что заказчик или работодатель ничего не понимающий дятел и выполняет работу как считает нужным (а зачастую как умеет) а не так как требуют. Да еще и пытается поучать заказчика как ему организовать бизнес-процессы.

C 2012 работал с датчанами, американцами, швейцарцами и финнами — кардинально противоположный опыт. Речь не о том, что заказчик «дятел», а о критичном подходе к требованиям и понимании сути задачи, а не копать отсюда и до обеда.

В чем противоположный? Вы рассказывали заказчику как и что надо делать? Что касается понимания задачи — это ваша проблема. И какой там у вас подход критический или нет сути дела не меняет.
У меня сейчас с англичанами продолжительный проект по логистике складов. И как я могу обсуждать с заказчиком как вести складской учет, какая форма инвойса и какие нужны репорты?
Это его бизнес — ему лучше знать что и как надо и в каком виде он хочет видеть ПО.
Мое дело сесть и сделать как он хочет а не
умничать. То есть копать от забора до обеда. Имеется ввиду конечно серьезные заказчики а не шантрапа с апворка.
Если вы архитектор системы то конечно есть пространство для маневра (в пределах бизнес-требований разумеется) но в контексте даного топика речь о работе именно програмиста.
В этом и суть — у нас чем програмист моложе и чем меньше опыта тем самоувереннее и безапелационнее — типа заказчик лох — не понимает какие есть крутые фреймворки. Сам такой был много лет назад :)
Вообще видение програмиста и видение заказчика обычно не совпадет. Вот делаю ща знакомому сайт по торговле автозапчастями. С точки зрениея програмиста проще ввести в поле модель машины уточнить модификация в списке автоподсказки и все дала. Но заказчик таки хочет чтобы как в програмах TECDOC — стопицот комбобоксов — сначала выбирается год потом бренд потом модель потом модификация. Ну так ему лучше чего спорить — добавляешь к сроку еще один день и делаешь.

Даж не знаю с какой стороны подойти 😊. Пожалуй ограничусь тем, что не стоит мешать бизнес-требования и технический аспект реализации. На последний программист как раз и может влиять чаще всего, но согласен, не во всех компаниях. Об этом и топик.

А еще есть практики DDD, при который технические специалисты вникают в бизнес-процессы и как раз таки участвуют в процессе нахождения подходящей модели.

а не шантрапа с апворка

Я надеюсь, вы не хотите сказать, что все заказчики на апворке — шантропа 😊.

Вообще видение програмиста и видение заказчика обычно не совпадет.

Вот DDD как раз про это. Чтобы совпадало.

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

поэтому не травмируй мозг и делай

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

А откуда вы знаете контекст? Представте жопорукий еще джуниор которому крупно повезло найти работу с оплатой сеньера и/или работу где можно набратся опыта. А может он с начальством тоже так разговаривает.
Я своего начальника знаю много лет и неоднократно пил с ним водку. При коллективе конечно не хамлю ,человек мне платит зарплату и вообще субординацию никто не отменял, но в личном могу тоже сказать все что думаю.
И вообще гордыня — один из семи смертных грехов.

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

Это не даёт права разговаривать с человеком как с говном. И не повод слушать и кушать такое отношение ради каких-то плюшек.

При коллективе конечно не хамлю ,человек мне платит зарплату и вообще субординацию никто не отменял

Так и пиши — мне платят денежки, я готов прогибаться как угодно и под что угодно.

И вообще гордыня — один из семи смертных грехов.

Самоуважение — это гордыня?

Себя вы можете уважать сколько угодно. А уважение других еще надо заслужить.

А уважение других еще надо заслужить.

Я не собачка, чтобы что-то заслуживать. Относитесь ко мне надменно/свысока/как_к_говну — вон нафиг, несмотря на предлагаемые плюшки.

А на основании чего вас уважать? Какие великие свершения вы сотворили в своей жизни? Вот ТС сделал фигню на работе его ткнули носом (хотя могли и выгнать) он прибежал плакаться на ДОУ.
Выполнение того за что платят (независимо от вашего мнения по этому поводу) не означает унижения и не означает быть собачкой.
В противном случае означает только одно — юношеский максимализм и ни на чем не основанные понты. С возрастом это проходит. И у вас пройдет. Вменяемого взрослого человека вообще не волнует кто его уважает о что о нем думают.

А на основании чего вас уважать?

Не нужно меня уважать. Но я с Вами не буду иметь дело.

Какие великие свершения вы сотворили в своей жизни?

я кому-то что-то должен в этой жизни?

Вот ТС сделал фигню на работе его ткнули носом (хотя могли и выгнать) он прибежал плакаться на ДОУ.

Ага, скажем спасибо барину за то, что секут нас через день, а не каждый.

Выполнение того за что платят (независимо от вашего мнения по этому поводу) не означает унижения и не означает быть собачкой.

В данном случае дело вовсе не в выполнении или невыполнении.

В противном случае означает только одно — юношеский максимализм и ни на чем не основанные понты. С возрастом это проходит. И у вас пройдет.

К 35 годам не прошло (а только усилилось).

не травмируй мозг
оч
=(

Так писали в 2007. А теперь они уже начальники

Конфликт поколений: «Превед! — Дратути!» ©

Пасиб, я даж не слышал про Дратути )

нужно уволить начальство и сделать заведующими свинофермой )

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

Давайте отрубим ему хвост, по самую голову

У меня был такой случай — начальник (совершенно некомпетентный технически) заставил писать вычислительное ядро на Matlab, который я тогда знал постольку-поскольку.
Я возражал, во-первых по этой причине (ответ был — ничего, по ходу и научишься), а во-вторых потому что сомневался, что все будет так, как в рекламе (компилируешь код одним нажатием кнопки, и вот он у тебя уже доступен в качестве Excel AddIn или .dll)

Но начальник есть начальник: как мне в 3 года объяснил отец: если капитан командует «лево руля!», то матросы должны ответить «есть лево руля!» и быстро выполнять команду, а не говорить «не, мы лучше повернем направо».
Поэтому я перед началом проекта погуглил про проблемы с Матлабом, тезисно изложил их в email’е, копию которого отправил директору. Ну а когда все получилось так, как яжговорил, то по крайней мере не удалось всех собак на меня повесить. Начальник тот, кстати, пошел на повышение, но это другая история :)

У меня был такой случай — начальник (совершенно некомпетентный технически) заставил писать вычислительное ядро на Matlab, который я тогда знал постольку-поскольку.

Матлаб для этого не сильно пригоден. Он удобен, когда его знаешь, для быстрой проверки идей и алгоритмов. Он же интертрепатор и будет тормозить на интертрепации. Толку от того, что он юзает CUDA и MKL не много. Разницы с тем же питоном никакой. Вот только у него IDE очень удобна для отладки своих алгоритмов, в отличие от Питона, к которому IDE под другую разработку заточены.
Матлаб на проде юзают только в одном случае, когда портировать на С или С++ сильно долго.

(компилируешь код одним нажатием кнопки, и вот он у тебя уже доступен в качестве .dll)

Таки да, но к оному прилагается редистпак на Гиг.

Но начальник есть начальник: как мне в 3 года объяснил отец: если капитан командует «лево руля!», то матросы должны ответить «есть лево руля!» и быстро выполнять команду, а не говорить «не, мы лучше повернем направо».

В таком случае главное вовремя сменить корабль.

Вот только у него IDE очень удобна для отладки своих алгоритмов, в отличие от Питона, к которому IDE под другую разработку заточены.

Ты, небось, не видел PyCharm. :)
Я как раз сейчас изучаю Питон (ну надо, Федя, везде его требуют, хотя если речь о Data Science, на R можно любую задачу так же решить).
Так или иначе, мне язык в целом нра... но вот нестрогая типизация (она меня и в матлабе бесила), я вообще не понимаю, как без нее можно писать большие проекты?!

Таки да, но к оному прилагается редистпак на Гиг

А потом начинаются танцы с бубнами, типа у тебя .Net Framework слишком новой версии, надо откатиться на старую (привет корпоративной политике безопасности) и все такое.

В таком случае главное вовремя сменить корабль

Не всегда это возможно и желательно.

Ты, небось, не видел PyCharm. :)

Видел. Очень не понравился. Тяжелый и не под то, что делаю я. Plugin для NetBeans и то поприятнее для и меня. А PyCharm для тех, кто ваяет большие приложения с гуями и вебом на Питоне.

но вот нестрогая типизация (она меня и в матлабе бесила)

Нет там такого. Там если явно не укажешь, всё double (кроме строк и булевых) и никаких неявных преобразований. Ты что-то путаешь. Если ты про cell — это всего-лишь контейнер для объектов разных типов (причем и индексация в нем через {}, а не ()). И более того типы надо явно преобразовывать различными функциями (а эти функции могут и долго работать, ибо копирование будет с проверками).
Но в матлабе большой нюанс, если хочешь, чтобы он считал быстро, то всё должно быть написано в матричном виде. MatLab — Matrix Laboratory, вообще-то.
Ну и матлаб тебя на ура пускает на уровень Java, если надо.
К матлабу проще, чем к Питону присобачивать С++ и С код из различных либ (с этим уже столкнулся и ужаснулся от сифона — это оказался самый быстрый путь сделать биндинг к С++, по другому питонщики с которыми работал не смогли — долго другие варианты).
Матлаб нативно умеет CUDA (но писать с ее юзанием нужно с умом, понимать, где синхронизации с памятью видеокарты будут).

А потом начинаются танцы с бубнами, типа у тебя .Net Framework слишком новой версии, надо откатиться на старую (привет корпоративной политике безопасности) и все такое.

Матлабу .Net нафиг не упал, если ты явно его не прилепил, через ActiveX мелкомягкий или подобное. Матлаб сам на Java и тянет ее с собой.
Напомню, Матлаб под Линухом работает на ура и всегда работал и ему ничего не надо, всё тянет с собой (жабу и либы) — это иногда мешает.

Но, у матлаба, как и у других инструментов есть своя область применения. Например, отрисовка там графиков, видео и т.д. не быстрая, но с очень большими возможностями. Математику отлаживать на матлабе очень удобно и быстро и куча встроенных инструментов и опенсурсных есть к нему. Очень просто прилепливать код на С и С++ (простой и четкий интерфейс биндинга и юзание твоего компилятора С++, что в системе поставлен). Правда с MinGW не дружит по дефолту под виндой, хочет Intel или MS компилятор. Под линухом на выбор icc или gcc или шланг.

Тяжелый

Это да. Но у меня достаточно быстрый десктоп, чтоб и эта тяжесть летала.

Там если явно не укажешь, всё double

А что, можно явно указывать?
Конечно, если работать на уровне примитивов, то больших проблем нет.
Ну так я ж хочу вещи посложнее в качестве параметра передавать, например, OHLC price data — а это — объект, содержащий 4 массива double и один массив datetime. Причем если я вижу тип передаваемого объекта, то часто сразу понимаю о чем речь и что функция делает.
Кстати, в Питоне 3 есть type hints, вот только я пока еще не разобрался, насколько они мощные, и насколько их коммьюнити использует.

Матлабу .Net нафиг не упал

Когда матлабский код в Excel AddIn не компилировался, Матворкс официально ответил, что надо откатить назад версию .Net
Это помогло.

А что, можно явно указывать?

Да. uint8(rand(100, 200, 3)*255) или zeros(100, 200, ’uint16′), например.
RTFM, однако. С тем же видео в double вообще работать плохо.
Для CUDA юзайте GPUArray, но не забывайте, кто копирование в видеопамять и выгребание из нее длительная операция, причем многие стандартные функции работают с этими массивами прямо на GPGPU (в матлабе уже написаны кернелы для них, причем так, что они склеиваются прямо в GPU без копирований память-видеопамять).
Но тот же OpenCL нативно не поддерживается, т.е. юзать можешь через mex и C/C++.

содержащий 4 массива double и один массив datetime

Для этого там инструментов море, struct, cell, table и datetime и т.д.

Когда матлабский код в Excel AddIn не компилировался, Матворкс официально ответил, что надо откатить назад версию .Net

Логично, это MS, по другому с ними никак. Я вообще не совсем понимаю, почему mathworks никак не забьет на поддержку мелкомягких, наверное пока еще много народа в Винде.
Лично я съехал в Линух и забыл, как страшный сон MS и их заскоки.

Это да. Но у меня достаточно быстрый десктоп, чтоб и эта тяжесть летала.

Нет, перегруженность интерфейса тем, что мне нафиг не упало. А несколько дней разбираться с ним и переконфигурировать — нафиг, нафиг.

uint8(rand(100, 200, 3)*255) или zeros(100, 200, ’uint16′),

Это не то, т.к. это все примитивные типы.
А вот можно ли допустим определить
class Rectangle {
double width;
double length;
}
и функцию double calculateArea(Rectangle rect) ?!

struct, cell, table и datetime и т.д

struct в плюсовом смысле — все аттрибуты public?
А если я этого не хочу?

наверное пока еще много народа в Винде.

Ага, весь corporate на ней и сидит... ну или почти весь.

width = 10;
length = 20;
Rect = struct('witdth', width, 'length', length);
area = calculateArea(Rect); % без ';' сразу и в консоль результат выдаст

function area=calculateArea(rect)
    area = rect.width*rect.length;
end

или

classdef Rectangle
		
	properties
	   witdth;
           length;
	end
	
	methods
		function this = Rectangle(width, length)
			this.witdth = witdth;
			this.length = length;
		end
		
		function [area] = Area(this)
			area = this.width*this.length;
		end
	end
end

Получите и распишитесь.

this я юзаю, потому что приплюснуй, можно по любому назвать. Например, obj или my_cool_mnemonic_name_Don10

И есть в классе и приват и еще куча модификаторов и статик. И более того класс можно писать, как в одном файле, так и в старом стиле с пачкой файлов со специальным первым символом в имени каталога и смешивать их.
А еще есть класс-значения — это выше и классы пронаследованные от handle (за освобождением этих матлаб следит). И есть наследование.
Но развесистые иерархии классов в Матлабе никто не пишет, ибо нафиг не надо.
Но я классы в матлабе юзаю плотно, ибо часто удобно.
Единственный замороченный момент с деструктором, тут надо плотно доку читать, что и когда.

В матлабе нет только namespace, как в С++.

Так что опять RTFM. Всё есть, просто ты не прочитал хелп, а он у них великолепен и практически без ошибок, в отличие от мелкомягких хелпов.

Ну и в матлабе не нужно явно указывать тип явно, как в С — всегда double, если не указал другого. А дальше интерпретатор знает, какого типа твоя переменная и с несовместимыми операций не выполнит, а скажет, что низзя. Ну и он интерпретатор, а не компилятор, но может спортировать код в С и С++ под нужное тебе железо (правда автоматическая конвертация выглядит некрасиво обычно).

function area=calculateArea(rect)

Вот о чем я и говорю, как, читая код этой функции, понять, что rect должен иметь тип Rect?

Вопрос отнюдь не праздный, ибо тот же doxygen во многом на этом стоит автоматическую документацию.

Интерпретатор скажет, если что не так, как и компилятор С.
Ну или посмотреть в коде.

Ты путаешь интерпретаторы и компиляторы.

Доксиген с матлабом не работает. В матлабе свой подход для автоматического построение документации есть и никто в здравом уме не будет его переписывать под что-то другое или создавать параллельную систему документирования. С этим к жабаскрипту, в котором сотни людей дублируют работу других сотен.

Ну, и к чему дальше приколупаемся. Уже из пальца начал высасывать, к чему приколупаться. Да, за пивом матлаб тоже бегать не умеет.

И не забывай, что это интерпретатор высокоуровневого языка, а не С язык или С++ с развесистой системой типов, причем и программистом создаваемых типов.

Более того, что на Матлабе пишется одной простой строчкой, на С и С++ нужно дохрена кода написать и я не про тулбоксы или какие высокоуровневые функции матлаба. Вот этим многословием С++ меня и выбешивает.

Ну или посмотреть в коде.

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

Ну, и к чему дальше приколупаемся. Уже из пальца начал высасывать, к чему приколупаться. Да, за пивом матлаб тоже бегать не умеет.

Я ж самого начала сказал — для больших проектов [лично] мне нравятся строго типизированные языки. Уже потому, что в таких проектах код больше приходится читать, чем писать. Видя типы объектов, передаваемых между функциями (и зная предметную область) гораздо проще читать код.
Собственно, ООП вроде как и придумали для того чтоб облегчить перевод бизнес-задач в программный код.
А наличие классов при отсутствии понимания их взаимодействия не помогает (а как ты его поймешь читая код, если типы не указаны?!)

Ты путаешь интерпретаторы и компиляторы.

Не путаю. (Как будто нет интерпретаторов для строго типизированных языков?)

Более того, что на Матлабе пишется одной простой строчкой, на С и С++ нужно дохрена кода написать

Разумеется. Быстрое прототипирование, ad-hoc анализ — самое то (хотя я лично предпочитаю R — ну потому что так исторически сложилось). Но вот довольно большой проект, который должны поддерживать несколько разрабов (причем некоторые из них придут позже, когда проект уже пойдет в продакшн) — что ты выберешь, плюсы или Матлаб?

Я ж самого начала сказал — для больших проектов [лично] мне нравятся строго типизированные языки. Уже потому, что в таких проектах код больше приходится читать, чем писать. Видя типы объектов, передаваемых между функциями (и зная предметную область) гораздо проще читать код.
Собственно, ООП вроде как и придумали для того чтоб облегчить перевод бизнес-задач в программный код.
А наличие классов при отсутствии понимания их взаимодействия не помогает (а как ты его поймешь читая код, если типы не указаны?!)

Это называется «смешались в кучу кони, люди». У каждого инструмента своя область применения. Ну не надо микроскопом гвозди забивать.

Но вот довольно большой проект, который должны поддерживать несколько разрабов (причем некоторые из них придут позже, когда проект уже пойдет в продакш

Сильно зависит от проекта и задач в нем.
Если это исследовательский проект, то матлаб. А результаты, графики, таблицы и т.п.
Если же это для конченных клиентов, то С++ с Qt (для десктопа) или JS(для веба), не Питон (уже им наелся).

Это называется «смешались в кучу кони, люди».

Это называется эпитет не в тему :)
Для чего по-твоему ООП тогда?!

Если же это для конченных клиентов

Ты хотел сказать «конечных» или-таки «конченных» (в смысле технически неграмотных)?

то С++ с Qt

Ну вот по осноному вопросу мы и сошлись (единственно что я бы на плюсах сделал только вычислительное ядро, а для ГУЯ взял бы чего-нить другое, но лишь потому что я в Qt особо не шарю).

или JS(для веба)

А ты его, JS, знаешь?
Я когда-то пописывал, и вот сейчас все к тому идет, что придется и им заняться. Хотя чур меня, чур — я ведь и баристой стал, эспрессо варю только так.
Но без js на letYourMoneyGrow.com будут только статические растровые графики (сгенерированные на серверной стороне), а народу же responsive и interactive подавай!
Впрочем, для меня js has low priority (и так туеву хучу всего надо держать в поле зрения, чтоб не терять квалификацию). Но если до него руки дойдут, то как раз думаю о TypeScript — бо опять же строгая типизация.

Ты хотел сказать «конечных» или-таки «конченных»

Разница не большая.

А ты его, JS, знаешь?

Разделение труда, аднака.

а для ГУЯ взял бы чего-нить другое, но лишь потому что я в Qt особо не шарю

Qt сейчас под кучу платформ и достаточно приличный и удобный.
Gtk ограничен по сути одной, MFC другой одной.
На жабе, питоне и т.п. получаются уродцы в массе своей (хотя питон сейчас умеет как-то биндинги к Qt).

Разница не большая.

Не задирай нос! ;)
Я согласен, что в большинстве случаев скорее так, но не всегда. Например, в трейдинге — опытный трейдер может нашей математики-хуематики (в смысле, x=икс, y=игрек, e= экспонента :)) и не знает, но в голове прикидывает порой почище компьютера. То же самое, скажем, в military — кому-то с этим софтом в бой идти...

Разделение труда, аднака.

Давно какому-нибудь уеб-девелоперу объяснял, что такое график функции? :)
Я уж не говорю про специальные диаграммы типа boxplot и candle chart. Вот и получается порой, что проще самому, чем кому-то объяснять — особенно если бюджет маленький.

особенно если бюджет маленький.

В гараже по вечерам.

А так многие старт-апы и делаются :)
Я чего хочу сказать — если задача на js — не основная, то казалось бы, найди на том же доу желающего подколымить и дело с концом.
Нюанс однако в том, что велик риск больше времени потратить на объяснение ТЗ, чем самому разобраться как сделать.

но вот нестрогая типизация

Сразу видно второй питон))

но вот нестрогая типизация

Python, власне, має строгу типізацію. Можливо, з фреймворком якимось, буде простіше? ;)

Сомнения должны были зародится при виде 1C, а после такого они окончательно развеялись, в чём вопрос?

в польшу собирать клубнику?

Еще можно в Испанию, кальмаров чистить.

Так, сходу:
бачу, у 1С є можливість генерувати REST
1c-programmer-blog.ru/...​interfejs-odata-v-1c.html
навіщо ще одне API придумувати ?

Эта возможность появилась сравнительно недавно, в более старых версиях был только богомерзкий SOAP.

И то — вот это самое «генерировать» означает, что все сущности 1С будут доступны через REST сервисы, что обычно ну совсем нежелательно из соображений безопасности. Есть более избирательный вариант с HTTP сервисами, но REST на них нужно допиливать уже ручками.

Все доступны не будут. Только те, для которых разработчик явно скажет, что доступно это, это и это. Там очень подробная настройка, что можно, а что нельзя смотреть через REST.
Ну и не могу сказать, что несколько лет это недавно.

Что делать?

Дорослішати і вирішити для себе, чого ти хочеш від свого кар’єрного життя. Якщо бачиш себе на цій фірмі, з цим керівництвом і цими задачами — терпи, працюй і не витрачай робочий час на ДОУ,
Як ні — вйо на джин(реклама) створюй анкету і по співбесідам.

Не хотите выдавать свою дочку замуж? Занимайтесь с ней сексом сами!

Если вам так нужны фреймворки и вы не хотите писать велосипеды — ищите место, что это нужно. Но и начальник вполне в праве развивать свой продукт так, как считает нужным.

Но потом он скажет «почему так медленно?», и не скажет «я так захотел так что сам виноват»

В голосину. Это какая-то темная сторона IT.

Вот не надо грязи. Темная сторона — это IDA, реверсинг, малварь, 0day, root escalation и т.д. А в этой ветке — коричневая сторона))

Даже интересно, а что перед «поэтому»?

Да, кстати. Фразы вырванные из контекста, это гм..

— Уважаемый программист! Мы тебя попросили исправить небольшую ошибку: при расчете выплат зарплаты неправильно рассчитывался налог на доход физлиц. Нам нужно было срочно исправить эту ошибку и пересчитать налоговые отчисления, чтобы сделать своевременные корректные выплаты и чтобы нашу организацию не оштрафовали. Я не сильно разбираюсь в программировании, но думаю, что дело там было максимум на пару часов. А ты полез исправлять и заодно решил устроить рефакторинг на две недели. Своим рефакторингом и несвоевременным решением поставленной задачи ты подвел нашу организацию и ее оштрафовали. Вот поэтому если я еще увижу где-нибудь @бучие фреймворки, то буду оч сильно ругаться =(

гипотетические рассуждения или реальный кейс?

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

Так а в том, что в постановке задачи отсутствует упоминание срочности, разве исполнитель виноват?

в PHP фреймворки от лукавого. хотите фреймворки — смотрите в сторону питона, джавы, нодеджс и других

Очень авторитетный ответ :)))
Какой фреймворк в нодеджс может сравнится с симфони или зендом?

если хотите симфони, то пишите тогда на spring (java), либо .net, можно еще в сторону django/tornado посмотреть.

нет, но немного пересекался

-Есть помещение под Николаевом. Под что можно его сдать в аренду?
— Уже если и сдавать помещение в аренду так лучше в центре Москвы.

не адекватное сравнение. если помещение в Николаеве то сдавайте его под аренду в Николаеве а не в Москве — иначе будут проблемы

Ніякий. Найцікавіше те, що намагання портувати фреймворки з ПХП на Ноду були неодноразово (Laravel, Yii2, Symphony) а от з Ноди на ПХП чомусь ні одного фреймворка не намагались перенести\клонувати )))

а от з Ноди на ПХП чомусь ні одного фреймворка не намагались перенести\клонувати )))

ну, справедливости ради, на php из ноды перенесли идею. появилось немало библиотек для event-driven I/O: reactphp, amphp, workerman, swoole и т.д.
емнип тот же реакт в первых версиях в readme на гитхабе указывал что-то вроде «inspired by node.js»

так что да, фреймворки из ноды на пхп не переносили, но можно сказать, что на пхп перенесли сразу node.js.

ехать в польшу собирать клубнику

Предложите этот вариант начальству

Что делать?

менять работу.

Подписаться на комментарии