Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Вася Уткинdbpatchи ввести правило - один клиент, один процесс. dbpatchИли ты всерьез считаешь, что количество кассиров на кассах должно быть равно числу покупателей в торговом зале? «Одной из разновидностей шизофренического раздвоения личности выступает агрессивное и истерическое требование чего-либо у самого себя с принципиальным и систематическим отказом себе» Общая психиатрия, М., 1966 себя проверить не пробовал? речь идет не про 100500 клиентов, которые пришли с запросами, а про тех, кого в момент времени обрабатывает процесс-сервер. остальные - стоят в очереди, ждут свободного обработчика. причем за очередь отвечает совсем другой процесс, который не падает. уже в третий раз поясняю - отдельный процесс, висит, занимается общением с клиентами, держит открытые сокеты. никогда не падает. каждый клиентский запрос отправляет любому доступному из 10 заранее созданных процессов обработчиков. если свободных нет - все дружно стоят в очереди, ждут следующего освободившегося обработчика. так работает любая не шизофреническая огранизация - от банков, магазинов до каких ЕРКЦ. и это нормально, число обработчиков должно быть фиксировано, ибо рост числа оных лишь уменьшит общую пропускную способность - они будут мешать друг другу в борьбе за общие ресурсы (в реальной жизни - в борьбе за, к примеру, общий принтер в зале, в виртуальной - за диск, свободную память, процессор, за базу данных, т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 20:16 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruП осинтаксису языка, совершенно необязательно писать все define...handler в виде единого блока. Просто "оно само так получается". Наоборот, сишный try-catch вносит ненужное разнообразие. Вот есть у вас функция, которая получает блок данных предположительно соответствующих некоему формату, и пихает их в новый файл. Есть у неё два регулярно встречающихся особых случая. Один --- несоответствие формату, что проверяется вызовом валидатора перед открытием файла, и второй --- errno в файловой операции. Почему ветки кода для них должны быть записаны в разных концах функции? :) Иван! Вы - хитрый баламут! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 23:17 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchAnatoly Moskovskyпропущено... А если в демоне происходит, ну допустим ошибка в одном подкюченных сеансов - это тоже помереть? Вместе с тысячами других сеансов, где не было ошибки? в том-то и дело, что это ок :) полезно иногда смотреть по сторонам, как у других людей сделано. к примеру в Erlang и PHP (внезапно) подобное поведение является by-design. прикладнику не доверяют вообще ничего, и чем быстрее его прикладуха помрет - тем меньше потенциальных дефектов она внесет в окружение, чего-то там пытаясь дергаться в блоках типа catch. а подчистой памяти и прочих хендлов займется кто-то иной (как вариант - вызывающая сторона). т.е. там можно конечно обрабатывать исключения, но в базовой философии - это как раз не нужно делать, live-to-die, умри молодым :) возвращаясь к "нашим баранам" - в Erlang все окружение полностью контролируется средой, dangling pointer не возможны в принципе, 100500 процессов это не тру процессы с точки зрения O/S, а самые обычные корутины и там это реально работает, ибо среда выполнения это все контролирует. Ну... при слове Erlang я напрягся как тигр перед броском. Этот язык или парадигма вызывает у меня смесь удивления и восхищения. Но я прошу заметить что писать Erlang и PHP через запятую не стоит. Слишком велика разница. В тему обработки исключений. Нам не достаточно "пристреливать" процесс в случае краха Http request. В большинстве высокоуровневых языков нам надо принимать решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 23:22 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_ru Код: plsql 1. 2. 3. 4. 5. 6. Кстати по ходу мимо я замечу что в этом фрагменте кода нет иерархии обработчиков исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 23:24 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchа проблему 100500 клиентов обычно решает рядом стоящий nginx - использовать апач для коммуникации с какой edge мобилкой за 2000 км слишком дорого - апачу проще отдать весь ответ nginx-у, а самому заняться другим клиентом-запросом, чем держать выделенный процесс десятки секунд просто для того, чтоб отдать десяток килобайт Мне как-то пришлось пообщаться с игроделами которые кодят MMORG. (Клиент на Unity, сервер - на Java). Так вот они везде используют netty. Это веб-сервер и сокет сервер, работа которого базируется на том что потоки привязаны не к сокетам а к т.н каналу (channel) сетевого стека. Это мультиплексированный I/O только в концепции java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 23:30 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchС какого перепугу? nginx априори стабилен, там нет прикладного кода, все переходы и диаграммы состояний детерменированы, там просто нечему падать, ибо круг его задач (и пространство падений) жестко ограничен. Ггггг. Был у меня один знакомый, который утверждал что в его коде нет ошибок, потому что он применяет определенный метод разработки. Естественно там был баг на баге. Чувствую вы братья. По слепоте )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 23:37 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Вася Уткинdbpatchи ввести правило - один клиент, один процесс. dbpatchИли ты всерьез считаешь, что количество кассиров на кассах должно быть равно числу покупателей в торговом зале? «Одной из разновидностей шизофренического раздвоения личности выступает агрессивное и истерическое требование чего-либо у самого себя с принципиальным и систематическим отказом себе» Общая психиатрия, М., 1966 Согласен. Болеет или пьет! Требуется доктор Ливси. Кстати у меня год назад вышел конфликт с людьми, утверждающими, что проверка "черного ящика" по методу КА - идеальный метод, исключающий отладку. В итоге я вспомнил начала комбинаторики и показал, что проверка КА есть функция с факториальной зависимостью от числа входных параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 00:49 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytoniv_an_ru Код: plsql 1. 2. 3. 4. 5. 6. Кстати по ходу мимо я замечу что в этом фрагменте кода нет иерархии обработчиков исключений.Ну вот, не дали приврать для красоты :( Вы правы, очень немногие системы не поленятся сами отсортировать хандлеры по иерархии в луче кода. И в чём-то их авторов можно понять. Во-первых, при добавлении сортировки теряется совместимость по ошибкам с системами более ленивых авторов. Во-вторых, синтаксис не запрещает кодеру хранимок написать маразм, с которым просто непонятно, что делать: Код: plsql 1. 2. 3. 4. 5. Обработчик №1 должен быть глубже в стеке, чем обработчик №2, ведь "xxxxx" --- более частный случай, чем "xx*". В то же время Обработчик №2 должен быть глубже в стеке, чем обработчик №1, ведь "xx*" --- более частный случай, чем "*". И нельзя неявно заменить на Код: plsql 1. 2. 3. 4. 5. 6. и отсортировать, потому что для этого надо написать процедуру клонирования кода, а на это никто времени не даст. Тупо скопировать нельзя --- если в обработчике есть метка и goto, то после копирования будет ошибка duplicate label :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 05:20 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchздесь же вопрос о том, как построить среду, который будет запускать априори unstable решения - прикладной код, который пишет один девелопер, и второй - не факт что хоть когда-нибудь ревьювит, а регрессионных и прочих тестов нет вообще. причем так, чтоб и зависания сами решались, и утечки памяти - тоже сами как-то устранялись и не били OOM killerом по первым попавшимся под руку и т.п.Safe code и GC в богомерзких .Net/Java всех спасут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 10:27 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Ещё бывают списки исключений, упомяну об этом навсякий. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 10:36 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskydbpatchС какого перепугу? nginx априори стабилен, там нет прикладного кода, все переходы и диаграммы состояний детерменированы, там просто нечему падать, ибо круг его задач (и пространство падений) жестко ограничен. Ггггг. Был у меня один знакомый, который утверждал что в его коде нет ошибок, потому что он применяет определенный метод разработки. Естественно там был баг на баге. Чувствую вы братья. По слепоте )) любой код имеет те или иные баги и недоработки. в данном контексте (принцип построения отказоустойчивого софта) мы принимаем "контракт" - что этот компонент стабилен, просто потому что мы не вносим туда свой новый чудный нетестированный неотревьювленный прикладной код, который может его поломать разрушив стек вызова или погуляв указателем. это просто отказо-дуркакоустойчивый системный компонент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 12:54 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytondbpatchпропущено... в том-то и дело, что это ок :) полезно иногда смотреть по сторонам, как у других людей сделано. к примеру в Erlang и PHP (внезапно) подобное поведение является by-design. прикладнику не доверяют вообще ничего, и чем быстрее его прикладуха помрет - тем меньше потенциальных дефектов она внесет в окружение, чего-то там пытаясь дергаться в блоках типа catch. а подчистой памяти и прочих хендлов займется кто-то иной (как вариант - вызывающая сторона). т.е. там можно конечно обрабатывать исключения, но в базовой философии - это как раз не нужно делать, live-to-die, умри молодым :) возвращаясь к "нашим баранам" - в Erlang все окружение полностью контролируется средой, dangling pointer не возможны в принципе, 100500 процессов это не тру процессы с точки зрения O/S, а самые обычные корутины и там это реально работает, ибо среда выполнения это все контролирует. Ну... при слове Erlang я напрягся как тигр перед броском. Этот язык или парадигма вызывает у меня смесь удивления и восхищения. Но я прошу заметить что писать Erlang и PHP через запятую не стоит. Слишком велика разница. В тему обработки исключений. Нам не достаточно "пристреливать" процесс в случае краха Http request. В большинстве высокоуровневых языков нам надо принимать решение. Erlang как язык, ИМХО - полная ерунда. Я прочитал книги три по нему, и ни разу не "возбудился". Отсутсвие строк и даже for Там не сам язык интересен, а принципы, заложенные в его базовое окружение/фреймворк/библиотеку. Модель акторов, принцип обработки ошибок в т.ч. Они в книгах описаны общими словами, можно даже не проникаться чудным Prolog образным синтаксисом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 13:01 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Алексей Кdbpatchздесь же вопрос о том, как построить среду, который будет запускать априори unstable решения - прикладной код, который пишет один девелопер, и второй - не факт что хоть когда-нибудь ревьювит, а регрессионных и прочих тестов нет вообще. причем так, чтоб и зависания сами решались, и утечки памяти - тоже сами как-то устранялись и не били OOM killerом по первым попавшимся под руку и т.п.Safe code и GC в богомерзких .Net/Java всех спасут. Не спасут, увы. Потому что они там безграмотно сделаны - GC он общий на всех, freeze the world и прочие не прикольные штуки в догонку. Проблемы с сотнями гигабайт кучи (слишком долго чистится и т.п.). Причем оптимизационные припарки слабо помогают, сколько парни не тужатся. Тут кстати стоит вспомнить Erlang - вот там GC сделан на удивление правильно - в пределах контекста процесса (читай корутины). Т.е. память чистится не глобально системно, а именно в контексте евойных процессов, читай - запросов клиентов и эдаких укрупненных вызовов процедур. Т.е. переключили выполнение процесса (корутины), и в виде приятного дополнения вызвали подчистку памяти уже остановленного процесса, не останавливая всех остальных. Красота. А Java/.NET - фуфуфу, не респект. ARC (и SmartPointer в т.ч.) - тоже кстати не айс (промахи в кеши и в целом натужное рандомизированное хождение по объектам, хотя можно было бы "чистить" память одним махом - просто сбрасывая HWM в ноль в локальной куче завершившейся корутины/процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 13:06 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 13:26 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_rudbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение. чуваки с одноклассников тоже продемонстрировали https://habrahabr.ru/company/odnoklassniki/blog/139185/ как говорится - с чего начали, туда и пришли. не убедительно. Java относительно хороша в классе веб приложений, прямо под них и заточена - относительно небольшой жизненный цикл веб реквеста позволяет быстренько нааллоцировать немного из кучи, и в конце так-же быстро прибить выделенное, пока оно не перекочевало в "долгую" кучу. собственно в таких классах приложений она и применяется в 95% случаев. а все попытки сделать на Java долгоиграющие базы данных закономерно закончились пшиком или около того. но вообще это офтопик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 13:53 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Развели флудильню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 15:14 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_rudbpatchJava/.NET - фуфуфу, не респект.Java много лет была сначала совсем фуфуфу, потом просто фуфуфу, а потом Solr наглядно продемонстрировал, что и на Яве уже можно писать очень быстрые и масштабируемые вещи, было бы умение. Ну, там же теперь Гай Стил заправляет, так что делает из говна конфетку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 17:18 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - Ну не надо, а? Заточена она под программирование утюгов и сковородок. Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше. Она для WEB-приложений малоудобна. Для возможности разработки бизнес -приложений (т.н. бэкендов) на Java было сделано много усилий, и в этой нише она пока ещё вроде бы держится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 17:21 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
MasterZivdbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - Ну не надо, а? Заточена она под программирование утюгов и сковородок. Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше. Она для WEB-приложений малоудобна. Для возможности разработки бизнес -приложений (т.н. бэкендов) на Java было сделано много усилий, и в этой нише она пока ещё вроде бы держится. я не имел в виду апплеты. а "бэкэнды" они в большинстве случаев веб ориентированные, в конечном итоге, так что не надо. если вон глянуть все актуальные (развивающиеся в последнее время библиотеки) для Java - то там web торчит практически повсеместно (от Spring и далее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 17:48 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
dbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - относительно небольшой жизненный цикл веб реквеста позволяет быстренько нааллоцировать немного из кучи, и в конце так-же быстро прибить выделенное, пока оно не перекочевало в "долгую" кучу. собственно в таких классах приложений она и применяется в 95% случаев. а все попытки сделать на Java долгоиграющие базы данных закономерно закончились пшиком или около того. Cassandra - достаточно долгоиграющая. И непонятно что там и где закончилось "пшиком". И где есть манифест или нота о том что дескыть "пшик" объявлен. Ох вы и плут, коллега... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 20:02 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
MasterZivЗаточена она под программирование утюгов и сковородок. Для Web-приложений она -- не, ну применяется наверное иногда, но всё меньше и меньше. Она для WEB-приложений малоудобна.а что сейчас лучше для веб-приложений? Я новичок во всех этих веб-технологиях, но если на сервера приложений обычно деплоят war/ear-ники, то как дело обстоит с веб-приложениями, сделанными на других средствах? Btw, http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html - рейтинг языков Go пора учить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 05:30 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytondbpatchJava относительно хороша в классе веб приложений, прямо под них и заточена - относительно небольшой жизненный цикл веб реквеста позволяет быстренько нааллоцировать немного из кучи, и в конце так-же быстро прибить выделенное, пока оно не перекочевало в "долгую" кучу. собственно в таких классах приложений она и применяется в 95% случаев. а все попытки сделать на Java долгоиграющие базы данных закономерно закончились пшиком или около того. Cassandra - достаточно долгоиграющая. И непонятно что там и где закончилось "пшиком". И где есть манифест или нота о том что дескыть "пшик" объявлен. Ох вы и плут, коллега... а есть ещё? кстати там как раз используются все нативные штучки работы с памятью , и стоило тогда использовать язык с GC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 08:08 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Кстати очень хорошо что был упомянут golang. Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение Метод который принят в этом языке. Иван! Где вы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 08:14 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonКстати очень хорошо что был упомянут golang. Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение Метод который принят в этом языке. Иван! Где вы!Когда я смотрел на только-только свежеопубликованный go, в нём try-catch вообще не было. Ну, тоже метод :) Как там сейчас, через 10 лет --- не знаю, не смотрел, ибо что мне писать на платформе со stop-the-world GC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 08:35 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonКстати очень хорошо что был упомянут golang. Если мы обсуждали недостатки программирования try-catch то мы должны были выставить в сравнение Метод который принят в этом языке. Иван! Где вы! ИМХО ужасно , нафиг такую муть и призывы Ивана по возврату к бейсику не особо поддерживаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2017, 08:42 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39495490&tid=1340092]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 275ms |

| 0 / 0 |
