Повышение, которое рассматривают вредным? [закрытый]

Я также сталкиваюсь с этой проблемой в iphoneX (XR) Chrome, и может веб-страница нормально работать в iphone7,8.

Оба ios-Chrome являются современной версией Chrome.

Это хлопотно!

Также ищу решение.

51
задан JasonMArcher 30 June 2015 в 08:49
поделиться

19 ответов

Немного точек:

  • Используя что-либо без понимания считается вредным. Но это - только неосведомленный технологический пользователь (и его менеджер), кто записывается в конце.
  • Вы не должны устанавливать повышение для получения интеллектуальных указателей - они - заголовок только. И сама установка довольно проста в самом простом подходе, просто вводящем одну или две команды.
  • Многие библиотеки Boost и решения присутствуют в TR1 или будут присутствовать в C++ 0x
  • , Вы будете всегда зависеть от внешних библиотек... Попытайтесь выбрать тот, которые имеют блестящее будущее с точки зрения сопровождения и поддержки.
  • , Если Вы не хотите к развертыванию своего настраиваемого решения - который имел бы некоторые преимущества и недостатки.
92
ответ дан Anonymous 7 November 2019 в 09:38
поделиться

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

К сожалению, библиотека имеет эту репутацию, и она будет требовать времени для него для повреждения, прежде чем она будет видеть широкое использование в коммерческом секторе. Я также чувствую, что это - причина не рекомендовать это вслепую.

0
ответ дан dma 7 November 2019 в 09:38
поделиться

Повышение является большой библиотекой. Я действительно надеюсь, что это растет в ширине и принятии. Используйте его, расширьте его и продвиньте его.

Одна из больших вещей о сообществе.NET - то, что оно имеет библиотеку классов великолепной базы. Одной из фундаментальных проблем с C++, я верю, является минималистическая библиотека стандарта C++. Где угодно Вы идете для разработки кода, FOSS или корпоративный, существует некоторый выбор библиотек, которыми пользуются, так как нет широкой стандартной библиотеки. Таким образом, Вы заканчиваете тем, что были программистом на C++ INSERT_YOUR_COMPANY_HERE и не обязательно слишком передаваемые. Да, Вы передача навыков дизайна/архитектуры, но существует кривая обучения со взятием знакомства с любым набором библиотек следующее место, используете. Где, поскольку разработчик.NET будет в основном использовать ту же библиотеку классов и может сразу взяться за дело. Кроме того, библиотеки, которые создаются (и снова используются) имеют более широкую основу для построения.

Так же, как в стороне, можно использовать http://codepad.org для мусорного ведра вставки кода, и оно поддерживает повышение!

0
ответ дан chrish 7 November 2019 в 09:38
поделиться

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

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

Новичкам ПРИДЕТСЯ бороться с прокруткой их собственных решений низкого уровня проблем. И затем, когда у них есть лучшее понимание того, как их собственное решение работало, они могут использовать стороннее решение, уверенное, что у них есть некоторая идея того, что продолжается под капотом. Они будут пользоваться той библиотекой лучше!

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

1
ответ дан Kevin Laity 7 November 2019 в 09:38
поделиться

Я согласился бы с точкой зрения об интеллектуальных указателях. Я - новичок C++, и при задавании простого вопроса о синтаксисе указателя, один ответ , предложенные интеллектуальные указатели были способом пойти. Я знаю, что я не готов к повышению (я не действительно готов к STL ни один), так в большинстве случаев я регулирую меня далеко от того типа предложения.

1
ответ дан Community 7 November 2019 в 09:38
поделиться

Я вижу Вашу точку, но понимание чего-то не означает, что необходимо переписать все с нуля.

Они не являются "стандартными", но они являются столь стандартными, как библиотека может добраться.

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

3
ответ дан UncleZeiv 7 November 2019 в 09:38
поделиться

я нисколько не убежден, что это делает любые одолжения корреспондентам, которые, в общем и целом, являются очевидными новичками C++....:

  • Используя интеллектуальные указатели, не понимая то, что продолжается под капотом, собирается привести к поколению программистов на C++, которые испытывают недостаток в некоторых основных умениях и навыках программиста.

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

Должен "Привет Мир" включать реализацию подсистемы ввода-вывода?

Лично я изучил, как создать объекты, прежде чем я изучил, как записать классы. Я думаю, что изучил, как использовать векторы STL, прежде чем я изучил массивы C-стиля. Я думаю, что это - правильный подход: "вот то, как обратиться к нескольким почти идентичным переменным с помощью std::vector, позже я покажу Вам, что развертывается под ковриком через массивы C-стиля и new[] и delete[]".

4
ответ дан Max Lybbert 7 November 2019 в 09:38
поделиться

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

Некоторые люди, кажется, думают, что новичкам нужно преподавать сторону C C++ сначала и затем представить высокоуровневому материалу позже. Однако люди склонны работать, поскольку они обучены, таким образом, мы собираемся видеть много производственного кода, написанного с плохо управляемыми необработанными указателями (хорошо управляемые необработанные указатели иногда являются ужасно трудными), массивы (и неизбежный беспорядок между удаляют и удаляют []), и материал как этот. Я работал с кодом как этот. Я не хочу делать это снова больше, чем я имею к.

Начинают новичков со способом, которым Вы хотите их пишущий код. Это означает преподавать их контейнерам STL и алгоритмам и некоторые библиотеки Boost сначала, таким образом, первой вещью, о которой они думают при необходимости в группе вещей, является vector<>. Тогда преподавайте им конструкции низшего уровня, таким образом, они будут знать о них (или где искать их), когда они встречаются с ними, или в очень редких случаях, когда они должны микрооптимизировать.

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

6
ответ дан David Thornley 7 November 2019 в 09:38
поделиться

Согласие почти среди всех ответов состоит в том, что повышение очень ценно для опытных разработчиков и для комплекса, реального мира, программного обеспечения C++. Я полностью согласен.

я также думаю, что повышают , может быть очень ценным для новичков. Разве не легче использовать lexical_cast, чем использовать ostringstream? Или использовать BOOST_FOREACH вместо синтаксиса итератора? Большой проблемой является отсутствие хорошей документации повышения, специально для новичков. То, что необходимо, является книгой, которая скажет Вам, как запустить с повышения, какие библиотеки являются простыми библиотеками, которые упрощают задачи, и какие библиотеки более сложны. Пользование этими библиотеками вместе с хорошей документацией будет IMO делать изучение C++ легче.

7
ответ дан Dani van der Meer 7 November 2019 в 09:38
поделиться

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

Первый, должен программисты (или новички C++ конкретно) быть поощренным пользоваться библиотеками, идиомами, парадигмами, языками или функциями языка, которые они не понимают?

  • нет, конечно, нет. Каждый программист должен понять инструменты, которые они используют, особенно на языке как C++. Однако я не вижу много вопросов здесь на ПОЭТОМУ, где люди поощряются не понять код, они используют. Когда люди говорят, что хотят сделать X в C++, я думаю, что это - находка, чтобы сказать, что "Повышение имеет реализацию X, который работает, который является больше, чем homebrewed решение сделало бы, так использование это".

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

я также не вижу, как даже возможно использовать Повышение, не понимая то, что продолжается под капотом. C++, с или без Повышения, не является Java. Используя Повышение никоим образом не защищает Вас от сложностей языка. Все еще необходимо волноваться о конструкторах копии, адресной арифметике с указателями, шаблонах и всем остальном, что может аварийно завершиться в поверхности.

Это - ничто как то, что произошло в Java. Они разработали язык, который удалил всю тонкость. Повышение не делает этого. Вполне обратное, это вело новые идиомы и методы в универсальном программировании. Используя Повышение не всегда просто.

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

Далее, большинство библиотек Boost только для заголовка и не требует, чтобы Вы установили все это. Если Вы только хотите интеллектуальные указатели, просто включаете те заголовки и ничто иное.

О FOSS, у Вас есть точка в некоторых случаях, Но я сказал бы, что это - проблема для менее универсальных библиотек, которые пользователи не имеют . Но Повышение чрезвычайно распространено, и если у людей нет его, они должны получить его, поскольку это применимо к в значительной степени любой проблемной области. И конечно, лицензия совместима с любым проектом FOSS, который Вы хотите упомянуть. Я работал бы над проектом OSS, который использовал Повышение, чтобы сделать тяжелый подъем, чем тот, который переосмыслил его собственное (багги и собственный) колеса с крутыми кривыми обучения, которых, возможно, избежали.

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

В любом случае, я не вижу, как это может быть даже вдвое менее вредно, чем обучающие новички к прокручивают свое собственное . В C++ это - залог провала. Это - единственная причина, почему C++ все еще имеет репутацию быть подверженным ошибкам, и произведите ошибочное программное обеспечение. Поскольку для слишком длинного, люди записали все с нуля сами, не доверив стандартной библиотеке, не доверив стороннему коду, не доверив всему, что не было законно в C.

5
ответ дан jalf 7 November 2019 в 09:38
поделиться

Я полностью соглашаюсь с Вами. Это - причина, что я сначала объясняю их, как это должно быть сделано (т.е. при рекомендации повышения:: вариант, я объясняю, что они должны во всеобщем употреблении дизъюнктное объединение. И я пытаюсь не сказать, что это - просто "волшебная вещь повышения", но покажите, как они в принципе реализовали его. Когда я рекомендую повышение:: shared_ptr, я объясняю, что они должны были бы использовать указатель - но лучше использовать интеллектуальный указатель, который совместно использовал семантику владения.). Я пытаюсь не сказать просто "использование boost::xxx", когда я вижу, что корреспондент является новичком. Это - язык, это так не просто в использовании как некоторый язык сценариев. Нужно понять материал, который каждый использует, потому что язык не защищает программиста от выполнения плохих вещей.

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

Вы не можете сравнить это с изучением процессоров или ассемблера сначала. Подобный не важно знать, как комбинация двоичных разрядов нулевого указателя похожа. Знание тех не важно в изучении программирования с C++. Но указатели, массив или любой другой основной вещи в C++ не. Каждый не обходит изучение их перед использованием [boost|std]::shared_ptr или [boost|std]::array успешно. Это вещи, который должен быть понят сначала для использования утилит повышения успешно, по-моему. Это не о деталях как то, как вручную реализовать pimpl-идиому с помощью необработанных указателей - это не мнение, которое я высказываю. Но дело в том, что нужно сначала знать основные вещи об указателях или других частях, с которыми помогает библиотека повышения (для указателей, что они и что они хороши для, например). Только посмотрите на shared_ptr руководство и попытайтесь получить его, не зная об указателях. Это невозможно.

И важно всегда указать на них на соответствующее руководство повышения. Руководства повышения являются высококачественными.

10
ответ дан Johannes Schaub - litb 7 November 2019 в 09:38
поделиться

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

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

Однако повышение очень сложно. Необходимо быть опытным программистом для знания его ценности. Кроме того, у Вас должен быть по крайней мере некоторый опыт в C++, чтобы понять как работы Повышения и последствия использования Повышения здесь или там.

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

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

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

10
ответ дан sneg 7 November 2019 в 09:38
поделиться

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

15
ответ дан Anders 7 November 2019 в 09:38
поделиться
  • невозможно понять все полностью все время. Поэтому возьмите слово многих профессиональных разработчиков C++ для него, которых много частей повышения являются действительно очень полезными вещами использовать в Вашей ежедневной разработке.
  • включение довольно большого повышения C++ 0X является завещанием, что даже команда, которая справляется с эволюцией языка, думает, что повышение является Хорошей Вещью (TM)
  • , C++ является странным, жестким языком. Относительно легко учиться по сравнению с тем, как невероятно трудно это должно освоить. Существует некоторый действительно тайный материал, который можно сделать с ним. Повышение:: mpl основывается на некоторых из тех тайных вещей. Я люблю повышение, но я съеживаюсь каждый раз, когда я вижу, что кто-то в моей организации использует повышение:: mpl. Причина: даже довольно закаленные разработчики C++ испытывают затруднения при переносе их головы, как они работают, и код, который использует их часто, отражает, что (они заканчивают тем, что были похожи на кого-то, ударил по коду, пока они не работали). Это не хорошая вещь, таким образом, я частично соглашаюсь, что некоторые части повышения не должны использоваться без осторожности (повышение:: дух является другим примером).
  • стандарт C++ является также странной вещью. Наиболее распространенные компиляторы не реализуют весь существующий стандарт (например, обрабатывают экспорт по шаблону). Это - только инструкция того, что ожидать.
  • , Если у Вашего разработчика нет здравого смысла для решения, какому интеллектуальному указателю использовать в конкретной ситуации, возможно, они не должны бездельничать в той части кода без старшего руководства.
  • всегда существуют внешние библиотеки, начиная со времени выполнения. Большое повышение только для заголовка, таким образом, оно делает не , представляют новые внешние зависимости.
21
ответ дан Joris Timmermans 7 November 2019 в 09:38
поделиться

Я не соглашаюсь. Никто не предложил бы, чтобы Вы погрузились в к интеллектуальным указателям без полного понимания того, что продолжается негласно, но используемый разумно они могут удалить большое количество распространенных ошибок. Кроме того, Повышение является высококачественным производственным кодом, из которого новичок C++ может узнать о многом, с точки зрения дизайна так же как реализация. Это не все чрезвычайно сложно, также, и можно привередливо выбрать биты, в которых Вы нуждаетесь.

26
ответ дан jlarcombe 7 November 2019 в 09:38
поделиться

Вы знаете, как компилятор работает? Вы знаете, как ОС работает? Вы знаете, как процессор работает? Вы знаете, как электроника работает? Вы знаете, как электричество работает?

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

, Если у Вас есть вкус к знанию, это - большая вещь - и я ясно полагаю, что плюс при интервьюировании инженеров - но не забывают окончательность относительно работы: системы сборки, которые решают проблемы.

43
ответ дан Edouard A. 7 November 2019 в 09:38
поделиться

C++ не является благоприятным для новичка языком. С извинениями Scott Meyers новичок не учит всего один язык с C++, но четыре:

  1. части C
  2. Объектно-ориентированные части: классы, наследование, полиморфизм, и т.д.
  3. STL: контейнеры, итераторы, алгоритмы
  4. Шаблоны и метапрограммирование

я утверждал бы, что, если новичок уже поднимается на эту гору, на них нужно указать к более "современным" аспектам C++ от запуска. Чтобы сделать иначе, средства, что новичок изучит C-выход C++ с регулярными указателями, утечками ресурсов, и т.д. Оказываются в мире боли и затем обнаруживают Повышение и другие библиотеки как способ остановить вред.

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

Что касается зависимостей, большое Повышение только для заголовка. И либеральная лицензия Повышения должна разрешить свое включение в примерно любой проект.

66
ответ дан sstock 7 November 2019 в 09:38
поделиться

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

5
ответ дан Adrian Grigore 7 November 2019 в 09:38
поделиться

Владение ограниченными ресурсами и динамическое владение ресурсами являются общими основными потребностями, и их реализация в boost очень хороша и настоятельно рекомендуется. Я ими пользуюсь, и они отлично работают.

1
ответ дан 7 November 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: