LINUX.ORG.RU

Сообщения firkax

 

Ваше отношение к конструкциям вида if (a=f) в Си и C++

В очередной раз столкнулся с этой темой на форуме, решил провести опрос.

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

Существует, в целом, три варианта отношения к конструкциям вида if (a=f). Первый — конструкция полностью нормальная, нет причин на неё гнать. Второй — опасения спутать = и == и на этом основании объявление данной конструкции вредной. Третий (почему-то про него вспоминают реже чем про первые два) — заявления о том, что не-булевы выражения (речь тут не конкретно про присваивание) в качестве условия if вообще так или иначе не совсем нормальная ситуация.

Часто сторонники второго варианта начинают потом писать про опечатки «которые у всех бывают», но я считаю нужным данную ситуацию прояснить: следует чётко отличать спутывание = и == по причине забывания как в Си пишется сравнение (в этом случае проблемой будет только =/== и ни что другое, и происходит такое, в первую очередь, у сильно неопытных программистов), и опечатки по причине, условно, нажимания не тех кнопок на клавиатуре — такое действительно случается у всех, но в этом случае конкретно присваивание никакой особенной роли не играет, речь идёт вообще о разных «способах» написать в скобках после if что-то неправильное и не заметить это. При этом, поскольку if по смыслу означает проверку условия, логично ожидать в скобках что-то булевое, а все остальные варианты объявить симптомами опечаток, подлежащими как минимум пристальному рассмотрению.

Те, кто так или иначе считает такую конструкцию проблемной (и включают соответствующий варнинг компилятора), дальше делятся ещё на два варианта: одни призывают вообще её избегать в любом виде, вторые же допускают её применение, но с явной подсказкой компилятору/программисту в виде дополнительных круглых скобок вокруг: if((a=f)).

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

>>> Результаты

 ,

firkax
()

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

Навеяно этим опросом: Сколько максимум дисплеев, одновременно подключенных к одному компьютеру, вы регулярно используете?

Речь про личную технику, т.е. которая в собственности, а не выдана/отдана под присмотр работодателем.

 , компьютеры,

firkax
()

Какие серверные веб-технологии вы используете на публичных сайтах

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

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

Во всех пунктах речь про серверную сторону, но для js я дополнительно уточнил во избежание непониманий. И ещё уточню - запуск на сервере всяких npm чтобы собрать js для браузера - сюда не входит.

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

  1. использую nginx 227 (52%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. использую postgresql 178 (41%)

    **********************************************************************************************************************************************************************************************************************************************************

  3. я таким не занимаюсь 138 (32%)

    **************************************************************************************************************************************************************************************************

  4. использую mysql/mariadb 132 (30%)

    ******************************************************************************************************************************************************************************************

  5. использую python 105 (24%)

    ****************************************************************************************************************************************************

  6. использую php как fpm или подобное 97 (22%)

    ****************************************************************************************************************************************

  7. не использую java 84 (19%)

    **********************************************************************************************************************

  8. использую nosql-хранилища (key-value) 83 (19%)

    *********************************************************************************************************************

  9. нигде не использую apache 82 (19%)

    *******************************************************************************************************************

  10. использую apache как публичный http(s)-сервер 78 (18%)

    *************************************************************************************************************

  11. не использую javascript на сервере 72 (17%)

    *****************************************************************************************************

  12. не использую php 70 (16%)

    **************************************************************************************************

  13. использую sqlite или ручное хранение "базы" в локальных файлах 67 (15%)

    **********************************************************************************************

  14. использую apache как внутренний сервер приложений 63 (14%)

    ****************************************************************************************

  15. использую php как cgi или mod_php к апачу 62 (14%)

    ***************************************************************************************

  16. не использую python 61 (14%)

    *************************************************************************************

  17. использую javascript на сервере 59 (14%)

    ***********************************************************************************

  18. использую go 52 (12%)

    *************************************************************************

  19. использую java 49 (11%)

    *********************************************************************

  20. использую другие сервера баз данных 42 (10%)

    ***********************************************************

  21. использую другой софт в качестве публичного http(s)-сервера 41 (9%)

    *********************************************************

  22. использую другие компилируемые языки 39 (9%)

    ******************************************************

  23. использую perl 26 (6%)

    ************************************

  24. не использую nginx 20 (5%)

    ****************************

  25. использую c# 19 (4%)

    **************************

  26. использую другие скриптовые языки (кроме шеллов) 18 (4%)

    *************************

  27. использую mssql 16 (4%)

    **********************

  28. использую скриптовые языки microsoft (asp/vb/?) 7 (2%)

    *********

Всего голосов: 1987, всего проголосовавших: 435

 ,

firkax
()

Одобряете ли вы действия Марака Сквайрса по внесению деструктивных изменений в свои популярные npm-пакеты colors и faker?

История происшествия тут: Разработчик внёс деструктивные изменения в NPM-пакеты colors и faker, применяемые в 20 тысячах проектах

 , faker, ,

firkax
()

RSS подписка на новые темы