Russian Qt Forum
Май 01, 2024, 10:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 12 13 [14] 15 16   Вниз
  Печать  
Автор Тема: Приватные методы  (Прочитано 97090 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #195 : Октябрь 05, 2015, 11:44 »

(вы ведь об этом подумали? что якобы шаблонны чрезмерно усложняют понимание кода.)
Да, да, и еще раз ДА. Усложняют. Чрезмерно. Чем меньше темплейтовской заразы - тем лучше. К сожалению, она часто понимается как "грамотность" и "знание языка". В результате человек изо всех сил хочет быть "грамотным" и сует std:: во все возможные места. Или, хуже того, начинает творить свои темплейты. У одних эта болезнь проходит, у других - увы  Плачущий

а вовсе не потому, что компания хочет сыкономить деньги на квалифицированных кадрах,
и поэтому вынужденна нанимать ниосиляторов, таких как вы, которые просто не тянут.
Откройте раздел "Алгоритмы" и возьмите любую мою тему. Попытайтесь ответить на хоть какую-то. Даже не "дать исчерпывающий ответ", а хотя бы выдать идею (пусть очень сырую). Мне почему-то кажется что Вы не будете даже пытаться. 

Ведь это (вроде бы) "не программирование", вот пусть кто-то другой этим занимается. Так?
Но если так, то выходит что вот тот "другой" и будет главной фигурой, а программист - так себе, лишь реализатор, делает что скажут. А может так оно и есть, в сериалах часто показывают "компьютерщиков" - юнцоа, подгоняемых поджопниками Улыбающийся  Какие уж тут "ребята 120+", дай бог "12-"

Компании надо решать свои прикладные задачи, и виртуозное владение командной строкой или манечка темплейт-общности может оказаться совсем не главным. Нужна идея решения, понять что вообще делать-то, насколько это реально, уметь рискнуть или наоборот, воспользоваться аналогами - много чего нужно. И только потом, когда все уже принципиально решено, вот тогда (может быть) какое-то значение будет иметь знание какого-нибудь "decltype" - ну а может и не будет.

А что будет делать "знаток"? Да ничего, сидеть играться с очередной конструкцией. Ну и нафиг он нужен? Попортить кровь окружающим назвав их "средними"? Другого применения его талантам часто не находится  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #196 : Октябрь 05, 2015, 11:57 »

А что будет делать "знаток"? Да ничего, сидеть играться с очередной конструкцией. Ну и нафиг он нужен? Попортить кровь окружающим назвав их "средними"? Другого применения его талантам часто не находится  Улыбающийся
Это потому, что вы не знаете, чем его нагрузить. Эх, мне бы таких хотя бы парочку ... Улыбающийся
А сейчас десятки "средних специалистов" ждут когда "папа" им придумает занятие, все разжевав и в рот положив.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #197 : Октябрь 05, 2015, 14:38 »

просто вы оказались слишком тупой, что бы понять простую вещь:

Переход на поросячий визг и личности, как правило, означает неправоту и не украшает вас как человека.

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

Вот именно. Все, что вы можете - это накидать ссылок. Я специально просил пример, который оправдывал бы
НЕОБХОДИМОСТЬ применения меташаблонов в РЕАЛЬНОМ коде. Вы же просто приводите ссылки на справочную информацию,
функционал стандарной библиотеки, которую и так может прочитать любой желающий. Что это доказывает?
Только то, что вы "книжный программист" и не более.

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

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

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

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

То, что люди злоупотребляют их использованием - это еще полбеды, настоящая беда в том, что они не осознают последствий.
То, что сейчас модно называть "метапрограммированием" - как правило, сводится к разработке франкенштейна "на шаблонах",
потому что "так завещал Александреску". Конечно, для говноконторы в полтора программиста это не особо трагично, поскольку
разработка на базе подобного кода не волнует ровным счетом практически никого (как впрочем и саму говноконтору). "Гуру"
может сколько угодно ваять метаконструкции и упиваться собственной крутостью и "знанием языка". Но дело в том, что это
никого не колышет, кроме самого "гуру" Улыбающийся

А теперь представьте, что речь идет о компании, которая создает промышленный продукт. Этот продукт создается усилиями не одного-двух,
а десятков и сотен разработчиков. Такие компании дорожат своей репутацией и временем как своим, так и клиентов,
поскольку время - это очень важный ресурс. Простой системы из-за программной ошибки в течении несколько минут может стоить десятки, а то и сотни
тысяч денежных единиц. Чем быстрее она будет устранена - тем ниже будут потери.

Вот как вы думаете, почему в серьезных компаниях частно проводится аудит кода и спорные и неочевидные вещи запрещаются к использованию?
Совсем не потому, что код-ревьюверы - идиоты, неспособные понять написанного, а инженеры-программисты - бангалорские обезьянки,
работающие за еду (такое тоже бывает, к сожалению, но это в итоге не играет в плюс менеджменту, который решил сэкономить). А потому, что
код является собственностью компании - раз, и должен быть ПОДДЕРЖИВАЕМЫМ - два.

Представьте, что "гуру", наваявший супермегашаблонный код, в один прекрасный день пойдет на повышение/уволится/выпиздят с конторы/сойдет с ума и заедет на дурку.
Сколько времени потребуется другому инженеру, который придет на место "гуру", чтобы разобраться в его хитросплетениях и найти ошибку либо
расширить функционал? Особенно если "гуру" не оставил практически никаких комментариев и руководства? Должна ли компания нести убытки
из-за того, что кто-то решил, что он "умнее" других?

Цитата: Igors
Да, да, и еще раз ДА. Усложняют. Чрезмерно. Чем меньше темплейтовской заразы - тем лучше.

Дело даже не только в этом. ПРАВИЛЬНО использованный шаблон - это несомненный и жирный плюс. Но надо исходить из реальности, а она такова,
что шаблоны - это корм для компилятора. А перевариваются они гораздо дольше "plain"-кода именно в силу своей иерархичной структуры.
Поэтому когда шаблонный рак (опять же, имеется в виду злоупотребление) проникает в самые глубокие уровни корпоративного фреймворка,
наступает коллапс билдсервера. Да и на местах разработчики вынуждены затрачивать лишнее время на сборку проекта, и все ради того, чтобы
какая-нибудь статическая штука была посчитана во время компиляции.

Кстати, по поводу компиляторов. Известно ли вам, что довольно часто есть необходимость использовать старые версии компиляторов для сборки
проектов? Здесь опять же я имею в виду проекты, имеющие жизненный цикл в несколько лет (а то и десятков). Продиктовано это может быть чем угодно,
от целевой системы заказчика до специфики используемых библиотек. Как вы думаете, что произойдет, если придет "гуру"-знаток 17-го стандарта и запилит в код
свое меташаблонное решение? Улыбающийся Нет, здесь, конечно, можно много об эффективности старых компиляторов - тут я не спорю, что переход на новые
версии в основном приносит значительные преимущества. Но не нужно забывать о том, во сколько обойдется фирме собственно портирование продукта,
и его тестирование...

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

на моем поле вы играть все равно не сможете.
Я не играю в игры под названием "кто назовет больше паттернов", эти времена уже прошли.


Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #198 : Октябрь 05, 2015, 15:14 »

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

В общем-то ключевой вопрос Улыбающийся. Все ли "гуру" плохие? Бывают ли хорошие Гуру? Могут ли "другие инженеры" понять проектирование и код хорошего Гуру? Если не могут, то почему? Виноват ли в этом Гуру или таки "инженеры"?

Может ли быть такое, что группа настоящих, хороших Гуру спроектировала всё как надо, написала основу, и далее инженеры должны следовать этим правилам и дописывать остальное. Гуру следят за инженерами, и если они делают что-то не так, то бьют их по рукам и говорят: "Не делай так. Делай вот так. Я лучше знаю." (и они действительно лучше знают). Если Гуру говорит, что надо использовать шаблоны, то его надо послушать или предать анафеме? Или такие команды из области фантастики? И надо не париться, а подстраиваться под "среднего инженера", всех гуру выгнать, чтоб не мешали код фигачить Улыбающийся. А потом каждые год-два половину проекта переписывать, потому что он плохо спроектирован и не расширяем. Когда вместо того, чтобы изменить 500 строк, приходится переписывать 50 000.
« Последнее редактирование: Октябрь 05, 2015, 15:17 от ViTech » Записан

Пока сам не сделаешь...
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #199 : Октябрь 05, 2015, 15:36 »

В общем-то ключевой вопрос Улыбающийся. Все ли "гуру" плохие? Бывают ли хорошие Гуру? Могут ли "другие инженеры" понять проектирование и код хорошего Гуру? Если не могут, то почему? Виноват ли в этом Гуру или таки "инженеры"?

Может ли быть такое, что группа настоящих, хороших Гуру спроектировала всё как надо, написала основу, и далее инженеры должны следовать этим правилам и дописывать остальное. Гуру следят за инженерами, и если они делают что-то не так, то бьют их по рукам и говорят: "Не делай так. Делай вот так. Я лучше знаю." (и они действительно лучше знают). Если Гуру говорит, что надо использовать шаблоны, то его надо послушать или предать анафеме? Или такие команды из области фантастики? И надо не париться, а подстраиваться под "среднего инженера", всех гуру выгнать, чтоб не мешали код фигачить Улыбающийся. А потом каждые год-два половину проекта переписывать, потому что он плохо спроектирован и не расширяем. Когда вместо того, чтобы изменить 500 строк, приходится переписывать 50 000.

Ну, вы знаете, это палка о двух концах. Я позволю процитировать себя же:

Особенно если "гуру" не оставил практически никаких комментариев и руководства? Должна ли компания нести убытки
из-за того, что кто-то решил, что он "умнее" других?

Если в проект внедряется нестандартное либо трудносопровождаемое решение, то оно ОБЯЗАНО быть описано в документации, причем таким образом, чтобы даже "средний" инженер это понял. Да что там средний инженер, даже гуру гуре рознь. У каждого нового "гуру", как правило, имеется "своя" точка зрения на все, и он, увидев "чужой" код, может сразу заявить - "что за дурак это делал? Я щас тут переделаю быренько, как НАДО" Так что, это как повезет. HR-щики при приеме гуру на работу же не спрашивают, что он будет делать конкретно с этой частью проекта.

Да и понятие "среднего" инженера, как правило, утрировано - все "гуру" были когда-то "средними" инженерами.

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

Насчет расширяемости - есть фундаментальные принципы KISS & DRY, и их придумали отнюдь не идиоты. Проектировать надо с умом, но не всегда можно охватить всех аспектов, будь ты даже супергуру в кубе. Поэтому общего решения "на все случаи жизни" - увы, не существует.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #200 : Октябрь 05, 2015, 17:00 »

Да и понятие "среднего" инженера, как правило, утрировано - все "гуру" были когда-то "средними" инженерами.
Понятие "средний программист" на форуме появилось после темы "хотите ли вы в этом разбираться" и определяет программиста, который не хочет (или не считает нужным) учиться. Улыбающийся
А вовсе не уровень его умений.
« Последнее редактирование: Октябрь 05, 2015, 20:30 от Old » Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #201 : Октябрь 06, 2015, 08:43 »

для поддержания темы вот такой вопрос интересен:
при использовании qt стараюсь не использовать std:: т.к. в qt есть лучшая замена, например qstring вместо std::string
в каких случаях std будет лучше qt ?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #202 : Октябрь 06, 2015, 09:25 »

для поддержания темы вот такой вопрос интересен:
при использовании qt стараюсь не использовать std:: т.к. в qt есть лучшая замена, например qstring вместо std::string
в каких случаях std будет лучше qt ?


Ну, например, когда надо использовать фичи с++11 - emplace, например. В случае std::string - никогда:)
Или там unique_ptr в массив положить.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #203 : Октябрь 06, 2015, 09:37 »

для поддержания темы вот такой вопрос интересен:
при использовании qt стараюсь не использовать std:: т.к. в qt есть лучшая замена, например qstring вместо std::string
в каких случаях std будет лучше qt ?


Пример из жизни, баг висит на qt багтрекере. std::vector значительно быстрей, чем QVector.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #204 : Октябрь 06, 2015, 09:47 »

Уточню, для винды по крайней мере.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #205 : Октябрь 06, 2015, 11:28 »

Если Гуру говорит, что надо использовать шаблоны, то его надо послушать или предать анафеме?

Я тут просмотрел последние пару страниц... Чтобы не быть неправильно понятым - я не агитирую против шаблонных решений из стандартной библиотеки, как раз они довольно неплохо продуманы и готовы к применению. Я имел в виду  код из разряда "кулибин 90-го меташаблонного уровня", который может пролезть во все дыры проекта, как рак - и вот с подобной хренью и надо бороться беспощадно Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #206 : Октябрь 06, 2015, 12:06 »

Я тут просмотрел последние пару страниц... Чтобы не быть неправильно понятым - я не агитирую против шаблонных решений из стандартной библиотеки, как раз они довольно неплохо продуманы и готовы к применению. Я имел в виду  код из разряда "кулибин 90-го меташаблонного уровня", который может пролезть во все дыры проекта, как рак - и вот с подобной хренью и надо бороться беспощадно Улыбающийся
А решения из буста к каким решениям будем относить? Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #207 : Октябрь 06, 2015, 17:11 »

А решения из буста к каким решениям будем относить? Улыбающийся

Я вроде уже писал, что с бустом как-то не приходилось работать - просто не нужен был...
Так что тут ничего не скажу)
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
AzazelloAV
Гость
« Ответ #208 : Октябрь 06, 2015, 21:04 »

Как автор топика позволю себе влезть в вашу беседу.
Тут я понял, как и у меня бывает, пересеклись психологические проблемы (в хорошем смысле) с проблемами проектирования.

Так вот, идите в баню.

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

Вот к примеру:
Цитировать
Пример из жизни, баг висит на qt багтрекере. std::vector значительно быстрей, чем QVector.

Ну чтож, мы не знаем, правда это или нет. И если правда, разницу вы уж нам покажите своим примитивным тестом. Приведите примеры (учитывая особенность примимения вектора). Я вам лично не верю - с какой стати доверять кому либо?

Цитировать
....Чем меньше темплейтовской заразы - тем лучше. К сожалению, она часто понимается как "грамотность" и "знание языка". В результате человек изо всех сил хочет быть "грамотным" и сует std:: во все возможные места. Или, хуже того, начинает творить свои темплейты. У одних эта болезнь проходит, у других - увы 

Я так понимаю, вы говорите про использование готовых темплейтов. И от того, что он суёт его во все доступные места? Я тогда немного не понимаю, как можно темплайт засунуть, там где он не засовывается. 

Цитировать
Открою одну истину: программирование ради программирования - бесполезно.

Ну, тут бы я с вами ой как поспорил. Как раз всё остальное не имеет смысла. Про себя говорю - тех людей, что видел, программирование ради программирования (уберём крайнойсти постоянное переписывание кода рада перфрекционизма) - только с ними можно работать. Ну, видно есть люди от бога, типа Джобса, может у них программирование .... Хотя, это так тонко, что, возможно, вы другое имели в виду.

По моим наблюдениям - успешные (в плане денег и не в мировом значении) - это те, кто программировал ради программирования, потом они немного устали и основали своё..... А через некоторое время устали от того, что у них есть и захотели опять программировать, но так устали от всего..... Что решили - я уже это прошёл.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #209 : Октябрь 06, 2015, 21:48 »

Так вот, идите в баню.

*Аплодисменты*
Да!
 Улыбающийся
Записан

Страниц: 1 ... 12 13 [14] 15 16   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 23.