1. 1C / Говнокод #4878

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    Док.н212=ТекЛист.Cells(х,2).Text; 
    Док.н213=ТекЛист.Cells(х,3).Text; 
    Док.н214=ТекЛист.Cells(х,4).Text; 
    Док.н215=ТекЛист.Cells(х,5).Text;; 
    Док.н216=ТекЛист.Cells(х,6).Text; 
    Док.н217=ТекЛист.Cells(х,7).Text;; 
    Док.н218=ТекЛист.Cells(х,8).Text; 
    Док.н219=ТекЛист.Cells(х,9).Text; 
    Док.н220=ТекЛист.Cells(х,10).Text; 
    Док.н221=ТекЛист.Cells(х,11).Text; 
    Док.н222=ТекЛист.Cells(х,12).Text; 
    Док.н223=ТекЛист.Cells(х,13).Text; 
    Док.н224=ТекЛист.Cells(х,14).Text; 
    Док.н225=ТекЛист.Cells(х,15).Text; 
    Док.н226=ТекЛист.Cells(х,16).Text; 
    Док.н227=ТекЛист.Cells(х,17).Text; 
    Док.н228=ТекЛист.Cells(х,18).Text; 
    Док.н229=ТекЛист.Cells(х,19).Text; 
    Док.н230=ТекЛист.Cells(х,20).Text; 
    Док.н231=ТекЛист.Cells(х,21).Text; 
    Док.н232=ТекЛист.Cells(х,22).Text; 
    Док.н233=ТекЛист.Cells(х,23).Text; 
    Док.н234=ТекЛист.Cells(х,24).Text; 
    Док.н235=ТекЛист.Cells(х,25).Text; 
    Док.н236=ТекЛист.Cells(х,26).Text; 
    Док.н237=ТекЛист.Cells(х,27).Text; 
    Док.н238=ТекЛист.Cells(х,28).Text; 
    Док.н239=ТекЛист.Cells(х,29).Text; 
    Док.н240=ТекЛист.Cells(х,30).Text; 
    Док.н241=ТекЛист.Cells(х,31).Text; 
    Док.н242=ТекЛист.Cells(х,32).Text; 
    Док.н243=ТекЛист.Cells(х,33).Text; 
    Док.н244=ТекЛист.Cells(х,34).Text; 
    Док.н245=ТекЛист.Cells(х,35).Text; 
    Док.н246=ТекЛист.Cells(х,36).Text; 
    Док.н247=ТекЛист.Cells(х,37).Text; 
    Док.н248=ТекЛист.Cells(х,38).Text; 
    Док.н249=ТекЛист.Cells(х,39).Text; 
    Док.н250=ТекЛист.Cells(х,40).Text; 
    Док.н251=ТекЛист.Cells(х,41).Text; 
    Док.н252=ТекЛист.Cells(х,42).Text; 
    Док.н253=ТекЛист.Cells(х,43).Text; 
    Док.н254=ТекЛист.Cells(х,44).Text; 
    Док.н255=ТекЛист.Cells(х,45).Text; 
    Док.н256=ТекЛист.Cells(х,46).Text; 
    Док.н257=ТекЛист.Cells(х,47).Text; 
    Док.н258=ТекЛист.Cells(х,48).Text; 
    Док.н259=ТекЛист.Cells(х,49).Text; 
    Док.н260=ТекЛист.Cells(х,50).Text; 
    Док.н261=ТекЛист.Cells(х,51).Text; 
    Док.н262=ТекЛист.Cells(х,52).Text; 
    Док.н263=ТекЛист.Cells(х,53).Text; 
    Док.н264=ТекЛист.Cells(х,54).Text; 
    Док.н265=ТекЛист.Cells(х,55).Text; 
    Док.н266=ТекЛист.Cells(х,56).Text; 
    Док.н267=ТекЛист.Cells(х,57).Text; 
    Док.н268=ТекЛист.Cells(х,58).Text; 
    Док.н269=ТекЛист.Cells(х,59).Text;	
    
    // ... 
    // и так далее все реквизиты

    Тот же программер с поиском даты заполняет реквизиты документа.

    Запостил: Ivon, 09 Декабря 2010

    Комментарии (131) RSS

    • если PHP - это дурь разжижающая мозги..
      то 1С - отечественный наркотик (вредный клон американского препарата) напрочь убивающий их.
      Ответить
      • Ну не скажи.. такого говна можно встретить и в сипп)
        Ответить
        • говно везде можно встретить. Его порождает мозг, а не ЯП.
          Ответить
          • >Его порождает мозг, а не ЯП.
            абсолютно полностью согласен.

            1C - калечит мозг ---> искалеченный мозг генит такое
            Ответить
            • >1C - калечит мозг ---> искалеченный мозг генит такое
              Не правда. 1С кроме удобств платформы так же накладывает некоторые ограничения на разработчика. Обход этих ограничений очень сильно развивает мозг.
              Ответить
              • Это какие ограничения развивающие мозг?

                Мне кажется как раз наоборот. 1С накладывает ограничения именно на развитие. Решаемых с помощью 1С задачи очень ограниченное количество и дальше понимания как их решать развитие не идет.
                Ответить
          • ЯП убивает или развивает мозг
            пых и 1с убивают
            си развивает
            как-то так
            Ответить
            • Чем плох 1С, кроме синтаксиса?
              Ответить
              • синтаксиса достаточно)
                но кроме того есть ублюдошный API, дебильная структура базы (наследние dbf), все болезни узкозаточенных языков (отсутствие многопоточности нормальной) итд...

                я писал только на семерке, но не думаю что принципиально что-то изменилось.


                убедится просто: сходите на форумы 1С программистов и посмотрите на код, который они там пишут
                Ответить
                • В 1С 8.1 много чего изменилось. Многопоточности, конечно, нет, но язык приобрел объектно-ориентированные нотки, в связи с этим программерам, которые программировали на ООЯП легче работать с 8.1.
                  Ответить
                  • а что там изменилось в плане ООП?

                    ps: я не против 1С как решения, но программировать на нем я бы не хотел
                    Ответить
                    • Пока не попробуете- не поймете.
                      Ну, я некоторое время писал на C#, была необходимость пописать на 1С 7.7, но, как говорится, "ниасилил". А вот 8.1 пошла на ура. Сейчас программлю на 1С 8.1 в полный рост, хотя разбирался во всем сам.
                      Ответить
                      • стесняюсь спросить: а классы-то свои на 1С пишете?
                        Ответить
                        • А вот с этим сложнее, хотя в принципе и это есть чем заменить в зависимости от потребностей.
                          Ответить
                          • да, есть проект 1CPP, но его пишут сторонние разработчики.

                            Выходит, что 1с8 не поддерживает создание собственных классов, верно?
                            Ответить
                            • В 1С8 вообще нет понятия класс.
                              Ответить
                              • объект есть, верно?
                                Ответить
                                • С натяжкой классами можно считать справочники и документы. Но свой класс можно создать только как наследник этих родителей.
                                  Ответить
                                  • интересно
                                    и что, правда удобно описывать сложную бизнес-логику в процедурном стиле?

                                    хотя бы указатели на функции там есть?
                                    Ответить
                                    • В 7.х вешался.
                                      Про указатели шутку оценил =)
                                      Если команда "Выполнить", в которую можно передать кусок кода в качестве текста.

                                      В семерке работать было невозможно, т.к. все функции и процедуры были private.
                                      В восьмерке можно уже явно указать функции public, но этим мало кто пользуется по старинке все так и реализуют всю логику заново в каждой обработке и каждом отчете.
                                      Ответить
                                      • >>Если команда "Выполнить", в которую можно передать кусок кода в качестве текста.
                                        что-то типа eval?

                                        Это единственный способ сделать стратегию?))

                                        >>реализуют всю логику заново в каждой обработке и каждом отчете.
                                        прекрасный язык)) прекрасная платформа
                                        Ответить
                                        • Лень смотреть что такое eval.
                                          Пример:
                                          а = 0;
                                          Выполнить("а = 2 + 2");
                                          Сообщить(а);

                                          Я честно говоря даже не представляю как через него стратегию реализовать.

                                          Да, платформа действительно прекрасная, поэтому и ухожу потихоньку оттуда =)
                                          Даже не знаю почему она стала настолько популярной...
                                          Ответить
                                          • допустим у нас есть функция вычисления налога, но для вычисления ей надо уметь вычислять сколько процентов этот налог. А стратегия вычисления этого процента -- всегда разная, и мы параметризируем ею функцию.

                                            Через выполнить видимо это можно сделать так:

                                            стратегияВычисленияПроцента = "если пользователь.льготный тогда 42 иначе 34.";
                                            налог = вычислитьНалог(стратегияВычисленияПроцента , какиетоПараметры);


                                            Как-то так можно сделать?
                                            Ответить
                                            • Легко.
                                              Ответить
                                            • Можно так сделать, но не думаю, что хранить куски кода в текстовых переменных хорошая идея.
                                              Ответить
                                              • я бы даже сказал, что это очень плохая идея.
                                                но по другому-то никак
                                                Ответить
                                                • Редко бывают случаи когда нужно обрабатывать много условий, поэтому вполне подойдет
                                                  "Если Тогда"
                                                  Ответить
                                                • Вообще в процедуру можно передать структуру параметров, в которой могут быть массивы, таблицы, соответствия, куски кода и т.д.
                                                  Ответить
                                                  • вот в случае ООП этот код может быть в методе передаваемого объекта. Это красивое решение, и не надо ничего литералом делать.
                                                    в случае чистых сей можно передать указатель на функцию. Это хуже (можно налажать с сигнатурой или еще чем), но опять же -- не надо писать код, как строку.

                                                    в 1С, как я понял, можно только как строку писать)
                                                    Ответить
                                            • налог = вычислитьНалог(?(ЛьготныйПользователь, 42, 34), какиетоПараметры)
                                              Ответить
                                              • нет)
                                                стратегия может быть КАКАЯ УГОДНО. Там может быть сложный алгоритм. Смысл в том, што вычислитьНалог не знает об этом
                                                Ответить
                                                • Не зная конкретной задачи я не смогу предложить вариант решения. Никто не сможет. На любом языке.
                                                  Ответить
                                                  • мне лениво разжевывать мой пример)
                                                    смысл в том, что функция снаружи получает кусок логики, которую исполняет

                                                    считайте, что Вы передаете функцию в функцию.

                                                    вот о стратегии: http://en.wikipedia.org/wiki/Strategy_pattern
                                                    там есть и примеры
                                                    Ответить
                                                    • Теперь понятно. Полной аналогии в 1С нет, но недавно я решил такую задачу. Нужно было в зависимости от условий выполнять тот или иной код, а иногда и несколько указанных блоков кода по очереди. Да, в итоге все упирается в Выполнить(), но в моем случае выполняется только тот код, который написан программистом. Так что с уверенностью могу сказать, что данная задача выполнима.
                                                      Ответить
                                                      • тоесть Вы описали код в строке, и передали строку, верно?
                                                        Ответить
                                                        • ну как же, говноязык без eval :)
                                                          не бывает такого!
                                                          Ответить
                                                          • ну вот вся эта елочка как раз о том, что eval (известный в мире 1С как "Выполнить") и есть единственный способ реализации стратегии
                                                            Ответить
                                                        • Через выполнить бывало я передавал имена функций.
                                                          Пример
                                                          ИмяФункции = "ПолучитьРезультат();";
                                                          Результат = "";
                                                          Выполнить("Результат = " + ИмяФункции);

                                                          Или при получении данных из неизвестных заранее полей таблицы/результата запроса.
                                                          ИмяПоля = "ПолеДанных";
                                                          Значение = "";
                                                          Выполнить("Значение = ТЗ." + ИмяПоля);
                                                          Ответить
                                      • > В восьмерке можно уже явно указать функции public, но этим мало кто пользуется
                                        Не согласен. Мои коллеги пользуются либо общими модулями либо вызывают функцию из модуля нужного объекта. У нас самописный продукт под страховую компанию.
                                        Ответить
                                        • Может Вы мне расскажете про стратегию?
                                          Знаете такой паттерн?

                                          Как реализовать его без передачи ссылок и без ООП?
                                          Ответить
                                          • Я пока только учусь ООП, поэтому стратегию знаю только в теории, а как ее реализовать без ООП понятия не имею. Не приходилось сталкиваться.
                                            Ответить
                                        • >Не согласен. Мои коллеги пользуются либо общими модулями либо вызывают функцию из модуля нужного объекта.

                                          Посмотри типовые конфигурации и ужаснись =)
                                          Ответить
                                          • Это не значит, что многие так делают. Вообще с типовыми мало работаем. Больше все с нуля.
                                            Ну, зато у них "1С:Совместимо"...
                                            Ответить
                • С целью повышения образованности.
                  Про API :) можно поподробнее?
                  И про многопоточность, если не трудно, в какое место ее стоит воткнуть?
                  Ответить
                  • показать все, что скрытомногопоточность, оченвидно, нужна там где хочется сделать много задач на разных ядрах чтобы использовать по максимуму все ядра
                    Ответить
                    • > чтобы использовать по максимуму все ядра

                      Это только один из сценариев, где многопоточность приносит профит, причём даже не всегда основной.
                      Можно запускать различные задачи внутри одного приложения, работающего на одном ядре, чтобы код был более понятным. Например, удобно создавать по одному потоку на каждого клиента сервера.
                      Ответить
                      • показать все, что скрытоА чем плох один потом с нелокирующими действиями? ну там корутины всякие?

                        Чото жирно по одному потоку на каждого клиента.
                        Лучше все таки по потоку на ядро
                        Ответить
                        • > ну там корутины всякие?

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

                          >А чем плох один потом с нелокирующими действиями?
                          Тем, что код похож на кашу.

                          > корутины всякие?
                          А в твоём языке есть хорошая реализация корутин и шедулера для них, bayan?
                          Ответить
                          • показать все, что скрыто>> Отсюда меньше накладных расходов на переключение контекста.

                            а так же на структуры(объекты в терминологии виндов) в памяти ядра, нет?

                            чото мне страшно за программу в которой будет 40 тысяч потоков, хотя я не пробовал.
                            Может быть всё будет хорошо.

                            Просто заюзать ядра процессора с корутиной нельзя, а с потоками ядра можно. Потому обычно люди стараются количество потоков сделать функцией от количества ядер чтобы они не топтались (ну там Io Completion Ports в винде, Grand Central Dispatch в яблоке)

                            >>Тем, что код похож на кашу.

                            ну при наличии async /await всяких не очень похож

                            >>А в твоём языке есть хорошая реализация корутин

                            ну вот ты же видел как в питоне asyncio сделано на корутинах и yield from?
                            Там довольно красиво и без каши

                            Вроде и в C# последнем не плохо


                            Вот если писать на джаве то конечно лучше юзать потоки)
                            Ответить
                            • показать все, что скрыто> хорошая реализация корутин
                              > asyncio сделано на корутинах и yield from

                              Ты прикалываешься чтоли? Хорошая реализация корутин - это в го или boost.fibers. А async-await и прочие елда фром - это дно.
                              Ответить
                              • показать все, что скрытов чем дно?
                                что не так?

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

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

                                      > в языке их не было изначально, так что увы
                                      Кого? В каком языке?
                                      Ответить
                                      • показать все, что скрыточто такое "протягивать"?
                                        Вот это:

                                        "
                                        loop = asyncio.get_event_loop()
                                        loop.run_forever()
                                        loop.close()
                                        "?

                                        не было корутин ни в питоне ни в C# ни в JS, иначе наверное их можно было вставить куда элегантнее, чтобы они внешне не отличались от обычных процедур
                                        Ответить
                                        • показать все, что скрытоПртягивать - это вот:
                                          async yoba peka() {
                                              ...
                                              string pitux = await socket.Read();
                                              ...
                                          }

                                          await протягивает передачу управления от socket.Read через peka выше по стеку до шедулера.

                                          > не было корутин ни в питоне ни в C# ни в JS, иначе наверное их можно было вставить куда элегантнее
                                          Это вообще не фича языка. В C(++) тоже ничего такого нет, что не мешает людям делать libcoro и прочие boost.fiber.
                                          Ответить
                                          • показать все, что скрыто>>Пртягивать - это вот:
                                            ну так-таки ключевые слова. Если бы не async/await тут, то код бы смотрелся как обычный и был бы хорошим, правда?

                                            Или тебе не нравится что стектрейс в эксепшенах и при дебаге будет адский?

                                            Так-то в go тоже есть go )
                                            Ответить
                                            • показать все, что скрытоПочему ты уперся в эти ключевые слова? Суть не в ключевых словах, а в механизме. В stackless корутинах от автора asio вместо ключевых слов макросы, что не меняет сути. Мне кажется, ты за деревьями леса не видишь.

                                              > в go тоже есть go )
                                              Как я уже сказал, мне похуй на ключевые слова. go просто запускает зеленый поток. ЕСТЕСТВЕННО должен быть какой-то способ запустить поток - будь то оператор языка go, библиотечная функция spawn или конструктор объекта std::thread.
                                              Ответить
                                              • показать все, что скрыточто не так в механизме-то?

                                                еще раз: тебе не нравится что портится стектрейс?

                                                >>spawn или конструктор объекта std::thread.

                                                ох) а началось все с того что я сказал что можно обойтись без системных тредов/процессов, а взять зеленые треды и корутины)
                                                Ответить
                                                • показать все, что скрыто> что не так в механизме-то?
                                                  Я хз, какими тебе еще словами это повторить. Просто перечитай:
                                                  Необходимостью явно протягивать передачу управления шедулеру через код
                                                  Проблема в "необходимости явно протягивать передачу управления шедулеру через код".
                                                  await протягивает передачу управления от socket.Read через peka выше по стеку до шедулера

                                                  > еще раз: тебе не нравится что портится стектрейс?
                                                  Я ничего такого не говорил. Схуя ты это притянул сюда?

                                                  > зеленые треды и корутины)
                                                  Зеленые треды - это в го и boost.fiber, а async-await - это синтаксический сахарок над switch'ом по номеру состояния.

                                                  Ты ламер в общем, не о чем с тобой говорить.
                                                  Ответить
                                                  • показать все, что скрыто>>Я хз, какими тебе еще словами

                                                    в пятый раз спрашиваю: чем тебе не нравится переитягивание?

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

                                                    >>Зеленые треды - это в го и boost.fiber, а async-await - это си

                                                    и как это опровергает мое противопоставление Native threads VS корутины, гринтреды и иже с ними?

                                                    >>Ты ламер в общем, не о чем с тобой говорить.

                                                    лол, ты пять раз не смог не вопрос ответить и в итоге психанул, гг
                                                    Ответить
                                            • >> await протягивает передачу управления от socket.Read через peka выше по стеку до шедулера.
                                              > ну так-таки ключевые слова. Если бы не async/await тут, то код бы смотрелся как обычный и был бы хорошим, правда?

                                              Соглашусь с гостем.

                                              Есть готовый код, который делает что надо. Начал зависеть от async-питушни - изволь переписать всё как async-питушню. Тот же самый по смыслу код должен зарасти ненужными ключевыми словами. А если была какая-то библиотека, то её вообще придётся переписать.
                                              Ответить
                                              • показать все, что скрыто1024: ну вот ты объяснил что тебе не нравяца ключ слова

                                                я согласен, было бы лучше если бы код был одинаковый

                                                для этого нужно править язык: нельзя сделать это сторонней либой.
                                                Ответить
                                                • показать все, что скрыто> для этого нужно править язык: нельзя сделать это сторонней либой
                                                  Ну-ну. Еще раз, загугли boost.fiber, libcoro и gevent из твоего любимого питона.
                                                  Ответить
                                                  • показать все, что скрыто>>gevent
                                                    ну так либа-то там все равно своя, не так-ли?

                                                    я не могу сделать input или sleep. Надо делать gevent.sleep, разве нет?

                                                    а значит писать все равно надо "асинхронно" (да еще и специфично для либы)
                                                    Ответить
                                                    • показать все, что скрытоНу и че? Естественно рантайм специальный нужен.
                                                      Ответить
                                                      • показать все, что скрытоА то, что например 1024 написал: "Есть готовый код, который делает что надо. Начал зависеть от async-питушни - изволь переписать всё как async-питушню. ".

                                                        Выходит что и в gevent придется переписать

                                                        ну да: yield from там не будет
                                                        но переписать все равно надо
                                                        Ответить
                                                        • показать все, что скрыто1024 писал, пускай и поясняет. Мне достаточно того, что не нужно думать о расстановке async и await при написании кода.
                                                          Могу только сказать, что заменить в паре мест socket.socket на gevent.socket проще, чем расставить по всему коду эвейты. И библиотеки вполне могут принимать сокет/поток от пользователя. Например, если есть парсилка json'а из iostream'а, то ей вполне можно подсунуть iostream, переключающий контекст под капотом.
                                                          Ответить
                                                          • показать все, что скрыто>>что не нужно думать о расстановке async и await при написании кода.

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

                                                            Теперь я понимаю чем тебе не нравится пробрасываение. Чего сразу-то было не объяснить?

                                                            Похоже что 1024 думает примерно так же
                                                            Ответить
                                                          • показать все, что скрыто>заменить в паре мест socket.socket на gevent.socket проще, чем расставить по всему коду эвейты.
                                                            А если эти вызовы в чужих модулях?
                                                            Ответить
                                                • > объяснил что тебе не нравяца ключ слова
                                                  Не нравится, что они "лавинно" распространяются. (Как я понял, это тоже не нравится) Использовал в функции F асинхронный вызов - всё, переписывай функцию F как async. Потом во всех функциях, которые использовали F, дописывай async-await, потом во всех функциях, которые использовали функции, которые использовали F, дописывай async-await. Логика вычислений не изменилась (только в одном месте добавили асинхронный вызов), а код переписать надо (во всех местах).

                                                  Всё равно, что считали какую-то хрень для float'ов, а потом осознали, что точности не хватает - и пошли везде вставлять double. Но для этого как минимум придумали typedef и указание конкретного типа в одном месте или шаблоны. Или вообще конфиги, если рассматривать уровень программ. Чтобы не трогать алгоритм, когда меняется какое-то сопутствующее условие.
                                                  Ответить
                                                  • > (Как я понял, это тоже не нравится)
                                                    (Как я понял, гостю это тоже не нравится)
                                                    Ответить
                                            • показать все, что скрытоМожет ты не видишь разницы между async-await корутинами и корутинами в го? Как я уже говорил, async-await корутины для переключения задач разворачивают стек (а контекст остается на куче) и спихивают на пользователя передачу управления шедулеру. Корутины в го и потоки в линуксе для переключения задач просто переключают контекст и они могут это делать из любой точки кода. Благодаря этому всякие блокирующие функции могут сразу передать управление шедулеру, незаметно для вызвавшего их кода.
                                              Ответить
                                              • показать все, что скрытоуф)

                                                я тебя четвертый раз спрашиваю чем тебе не нравится передача управления шедулеру?

                                                1) тем что вместо return надо писать yield from?
                                                2) тем что стектрейс в дебаге ужасный?
                                                чем?
                                                Ответить
                                      • показать все, что скрыто>Проблема в "необходимости явно протягивать передачу управления шедулеру через код".
                                        Извини, но именно так работает кооперативная многозадачность. Ты или крестик сними, или трусы одень.
                                        Ответить
                          • > Корутина отличается от потока в основном тем, что шедулится в юзер-спейсе, а не ядром.
                            Вроде не в этом же дело. Корутина -- это исключительно из области кооперативной многозадачности (явно нужно делать yield). Но в юзерспейсе можно и вытесняющую реализовать.
                            Ответить
                        • показать все, что скрыто>Чото жирно по одному потоку на каждого клиента.
                          Если у тебя клиентов не 10к то норм.
                          Ответить
                    • это понятно, ядра - чистый изумруд. Вы с многопоточностью на ты, в основном в частном порядке, не на работе? правильно?
                      На вопрос, к сожалению вы не ответили.
                      Ответить
                      • показать все, что скрытоого

                        За шесть лет Вы так и не узнали зачем нужна многопоточность

                        Хорошо быть 1С программистом
                        Ответить
                        • Из ответа я понял, что с многопоточностью у вас знакомство чисто теоретическое. Т.е. это что-то очень крутое, но сам никогда не работал. Она в 1С деле несложно реализуется.
                          Мой вопрос был, какие конкретно задачи планируется решать в 1С с помощью многопоточности?
                          Ответить
                          • показать все, что скрытоИз ответа я понял что с программированием у Вас знакомство чисто теоретическое, иначе бы Вы знали что многопоточность сейчас используется практически везде кроме клиентского джаваскрипта, да и то с оговорками.

                            Я понятия не имею причем тут 1С, но исходя из того что бекенд 1Са давно уже сделан на нормальной реляционной БД (MS-SQL, например) то полагаю что 1С вполне себе получает бенефиты от многоядерности точно такие же, как и SQL сервер.
                            Ответить
                            • программированием - конечно нет. яж не дурак.
                              меня интересует ответ на вопрос который задал. по этому зачем вы написали комментарий - загадка. википедия в РФ пока не забанена.
                              Есть только одно предположение, - вы тоже приболели капитанством. Это пройдет, верьте в себя. Буквально через год вы уже перестанете копипастить статьи на форумы.
                              ну и небольшой подарок - правильно пишется и говорится "скедьюлер", а не "шедулер". Не благодарите, мы все немного за просвещение.
                              Ответить
                      • показать все, что скрытоА что тебе не понравилось в ответе баропа? Правильно же сказал. А кашицын его правильно дополнил.
                        Ответить
                        • В ответе не понравилось, то что он ответил на какой-то другой вопрос. Меня интересует что он в своей любимой 1С собрался делать с помощью многопоточности.
                          Она в 1С легко реализуется, просто у баропа уровень подготовки позволяет только капитанить в комментах.
                          Ответить
                    • показать все, что скрытоТ.к. одна из задач обычно является узким местом, то чтобы по максимуму использовать все ядра надо не разносить задачи на разные ядра, а параллелить критическую по времени задачу по всем ядрам. Ну, это если не рассматривать веб-серверы и подобные вещи где просто много мелких задач.
                      Ответить
              • вот ответ: http://govnokod.ru/4878#comment56366

                в 1С нельзя написать свой класс. Можно только использовать те, что дает система. Примерно как в VBS. Так что ООП не поддерживается в полной мере.
                Ответить
    • Ну вот, опять этот ваш холивор развели. С умер! Да здравствует 1С!
      Ответить
    • Я один знаю, что в 1С можно писать и по-английски?
      Ответить
      • я тоже знаю.
        Это пример того, как коммунити влияет на подход.
        Можно писать лучше, но все пишут плохо потому что ТАК ПРИНЯТО.

        Тоже самое и с ПХП.
        Ответить
        • >Можно писать лучше, но все пишут плохо потому что ТАК ПРИНЯТО.
          >Тоже самое и с ПХП.
          в точку. вообще Анонимусу +1 ко всем постам в треде.
          Ответить
    • Ну почему так народ пишет?! Ну почему?!
      Я негодую.
      Ответить
    • показать все, что скрыто>ТекЛист
      Тентаклист.
      Ответить
    • показать все, что скрыто>Ivon
      Эйвон, ты косметику производишь?
      Ответить
    • показать все, что скрыто<a href=http://altstar.com.ua/s/b140046>Купить Втулка стартера</a>
      <a href=http://altstar.com.ua/s/880182A>Купить Катушка зажигания</a>
      <a href=http://altstar.com.ua/s/240971>Купить Компрессор кондиционера</a>
      <a href=http://altstar.com.ua/s/ALB1032>Купить Генератор</a>
      <a href=http://altstar.com.ua/s/AHM0437>Купить Щетки генератора</a>
      Ответить
    • показать все, что скрыто<a href=http://altstar.com.ua/s/0.1250.1>Купить Щетки стартера</a>
      <a href=http://altstar.com.ua/s/6008DDUC3E>Купить Подшипник шариковый</a>
      <a href=http://altstar.com.ua/s/VR-B558B>Купить Регулятор генератора</a>
      <a href=http://altstar.com.ua/s/STB4756>Купить Стартер</a>
      <a href=http://altstar.com.ua/s/AFB1045>Купить Статор генератора</a>
      Ответить
      • показать все, что скрытоКупить Щётки Стертора.
        Ответить
      • показать все, что скрытоЕсли это автоспамер по разным сайтам, то он мог автоматически капчу раскрыть?
        Ответить
        • Чисто гипотетически мог. Именно на этот случай некоторые сайтостроители советуют: если ставишь стандартную капчу, то смени хотя бы шрифт, чтобы OCR его пробивать было труднее.

          Если бы Страйкер заглядывал сюда почаще, можно было бы ему посоветовать поставить на капчу какой-нибудь малораспространённый шрифт.
          Ответить
    • показать все, что скрытозаказать прогон хрумером логин скайпа pokras7777
      Ответить
    • показать все, что скрыто<a href=https://avtorai.com.ua/s/233432>Купить Болт генератора</a>
      Ответить
    • показать все, что скрыто<a href=https://avtorai.com.ua/s/M13-2107>Купить Кольцо уплотнительное кондиционера</a>
      Ответить
    • показать все, что скрытозаказать продвижение интернет ресурса логин скайпа pokras77777
      Ответить
    • показать все, что скрыто<a href=http://medchina.kz/diagnozy/lechenie-dcp-v-kitae/>Лечение ДЦП в Китае</a>
      Ответить
    • показать все, что скрыто<a href=http://medchina.kz/diagnozy/lechenie-dcp-v-kitae/>Лечение ДЦП в Китае</a>
      Ответить
    • показать все, что скрыто<a href=http://medchina.kz/diagnozy/lechenie-dcp-v-kitae/>Лечение ДЦП в Китае</a>
      Ответить
    • показать все, что скрыто<a href=http://medchina.kz/diagnozy/lechenie-dcp-v-kitae/>Лечение ДЦП в Китае</a>
      Ответить
    • показать все, что скрыто<a href=http://farmdirect.ru/pimafucin-otzyvy-instrukcija>Купить Пимафуцин</a>
      Ответить
    • rss fixed for http://govnokod.ru/4878
      Ответить
    • <a href=http://medchina.kz/diagnozy/lechenie-dcp-v-kitae/>Лечение ДЦП в Китае</a>
      Ответить

    Добавить комментарий