Ну и по тем же причинам, поскольку сумма которую откусывают банки-корреспонднты в общем случае не известна, в договоре обязательно нужно писать, что сумма комиссий, сборов и прочего — за ваш счет.
Про «заплатил 6% с общей суммы» не совсем верно. Дело в том что если между стоимостью валюты в рублях на день поступления и курсом продажи/ стоимостью валюты в рублях на день перевода есть положительная курсовая разница, то с неё нужно платить 6% тоже. При этом если курсовая разница отрицательная, платить всё равно с большей суммы.
Фунция занималась тем, что читала описание некоторого многомерного геометрического объекта и строила модель этого объекта в памяти.
Десериализация на 1000 строк, вы серьезно?
А несколько наносекунд во внутреннем цикле могут обернуться десятками секунд ожидния у пользователя.
Вам знакомо такое понятие как premature optimization? Вы всерьез считаете, что где ни попадя оперировать предположениями «может обернуться десятками секунд» допустимо?
Так и быть, напишу я к этим трем строчкам комментарий — чтобы тот, кто придет потом, знал, что это сортировка.
От того, что вы написали что это сортировка — легче никому не стало. Разбираться в ней нужно, исправлять ваши ошибки, если они там вдруг окажутся тоже нужно. Полсотни алгоритмов сортировки разбросанных, по программе это не то чтобы совсем невозможно, но допустимо только при решении очень узкого круга задач, правда. И может являться только следствием оптимизации, а она, в свою очередь, следствием измерений.
А может быть, воспользуюсь функцией Array.Sort с лямбда-выражением. Но я проверил — даже на массиве из 1000 элементов Sort с лямбда-выражением работает дольше, чем простейшая сортировка Шелла.
Я не знаю о каком именно окружении идет речь, но судя по всему, неплохо было бы что-то в нём заменить. Функция, которая сравнивает два элемента массива, не является замыканием, не использует переменных снаружи. И если ваш компилятор не смог оптимизировать такой простой случай и/или рантайм-окружение не определило это место как «горячее» и не заинлайнило его, я бы на вашем месте подумал о замене компилятора, окружения. Ну раз уж вы занимаетесь задачами, в которых важны наносекунды.
Но я проверил — даже на массиве из 1000 элементов Sort с лямбда-выражением работает дольше, чем простейшая сортировка Шелла.
Чует моё сердце, что это действительно какой-то JIT-рантайм. CLR, скорее всего, судя по вашей подготовке и культуре труда. Я прав?
Если да, то хорошо ли вы понимаете в чем смысл hot spot'ов и что именно это значит для ваших бенчмарков?
Неужели автор предпочитает спагетти-код с функциями в 300-1000 строк длиной? Когда мы разобьем их на отдельные процедуры, они хотя бы получат имена и станут обозримыми — но использовать их где-нибудь еще мы вряд ли сможем
Вы исходите из того, что у вас уже есть функция в 1000 строк, промежуточных результатов которой нигде более не требуется и никакая её часть не повторяет части других существующих у вас функций в точности или с точностью до типов, так? Не могли бы вы объяснить где вы такое видели и что эта функция делала?
Здесь, как обычно, вылезает вопрос об эффективности. Если алгоритмы для целых и вещественных чисел совпадают на 98%, но различаются в самом узком месте, то может быть, лучше продублировать? Конечно, qsort показывает, что можно обойтись одним алгоритмом, но он — произведение искусства :)
Вам знаком принцип DRY? Не потрудитесь ли вы объяснить зачем дублировать и чем это, как вы выразились «лучше»?
Написать три строчки простейшего алгорима сортировки может оказаться (и часто оказывается) быстрее и удобнее...
Перечитайте пожалуйста секцию «Безразличие к результату». Это ваше «быстрее» кому-нибудь потом поддерживать, разбираться и править. Нет, серьезно, перечитайте.
Вы говорите так, будто не программированием занимаетесь, а каким-то мистическим обрядом. Есть условие продолжения цикла и условие продолжения рекурсии, если у вас со вторым проблем больше чем с первым — прочитайте советы в статье выше, займитесь этим в конце концов.
Это не считая того, что существует мнение, что хвостовая рекурсия может вообще избавить язык (ну или отдельно взятую программу на нём) от изменяемого состояния. Что, несомненно, благо.
Lisp — дедушка современных динамически-типизированных языков. Учитывая что почти все современные языки движутся (обратно?) в сторону различных функциональных возможностей, а lisp в значительной мере функциональный язык, то знать его «трюки» нужно для того чтобы хорошо писать на этих языках, кмк. По большому счету, в ruby, python, [вставьте свой любимый динамический язык] от лиспа отличается система типов, стандартные библиотеки и синтаксис (пробелы, скобочки — какая разница?). А приёмы всё те же.
Не, это вещи ортогональные: генераторы тоже ничего особо к ООП, как к идее об обмене сообщениями между изолированными «штуками», не добавляют, как и дженерики, которые просто фича системы типов.
1) вроде бы не USD50000, а всего USD5000. Причем это не размер транзакции, а суммарно в рамках договора. Если предполагаете, что будет больше 5к — лучше сразу оформить паспорт сделки.
2) Договор банки принимают любой. Конкретно я сдал копию публичной оферты процессинга в банк без каких-либо проблем. Ключевые слова для процессингов: «агентское соглашение». В качестве подтверждающих документов по транзакции — распечатка из админки, мол вот запросил вывод такой то суммы с лицевого счета. Всё.
3) PayPal пока что платит только в банки США, похоже, так что всё равно не актуально.
А ну и всякие доп сервисы есть типа отдельного хранилища для дистрибутивов, чтобы они долго были доступны клиентам и помоему есть опции отправки CD с дистрибутивом. Там много всего.
Десериализация на 1000 строк, вы серьезно?
А несколько наносекунд во внутреннем цикле могут обернуться десятками секунд ожидния у пользователя.
Вам знакомо такое понятие как premature optimization? Вы всерьез считаете, что где ни попадя оперировать предположениями «может обернуться десятками секунд» допустимо?
Так и быть, напишу я к этим трем строчкам комментарий — чтобы тот, кто придет потом, знал, что это сортировка.
От того, что вы написали что это сортировка — легче никому не стало. Разбираться в ней нужно, исправлять ваши ошибки, если они там вдруг окажутся тоже нужно. Полсотни алгоритмов сортировки разбросанных, по программе это не то чтобы совсем невозможно, но допустимо только при решении очень узкого круга задач, правда. И может являться только следствием оптимизации, а она, в свою очередь, следствием измерений.
А может быть, воспользуюсь функцией Array.Sort с лямбда-выражением. Но я проверил — даже на массиве из 1000 элементов Sort с лямбда-выражением работает дольше, чем простейшая сортировка Шелла.
Я не знаю о каком именно окружении идет речь, но судя по всему, неплохо было бы что-то в нём заменить. Функция, которая сравнивает два элемента массива, не является замыканием, не использует переменных снаружи. И если ваш компилятор не смог оптимизировать такой простой случай и/или рантайм-окружение не определило это место как «горячее» и не заинлайнило его, я бы на вашем месте подумал о замене компилятора, окружения. Ну раз уж вы занимаетесь задачами, в которых важны наносекунды.
Но я проверил — даже на массиве из 1000 элементов Sort с лямбда-выражением работает дольше, чем простейшая сортировка Шелла.
Чует моё сердце, что это действительно какой-то JIT-рантайм. CLR, скорее всего, судя по вашей подготовке и культуре труда. Я прав?
Если да, то хорошо ли вы понимаете в чем смысл hot spot'ов и что именно это значит для ваших бенчмарков?
Вы исходите из того, что у вас уже есть функция в 1000 строк, промежуточных результатов которой нигде более не требуется и никакая её часть не повторяет части других существующих у вас функций в точности или с точностью до типов, так? Не могли бы вы объяснить где вы такое видели и что эта функция делала?
Здесь, как обычно, вылезает вопрос об эффективности. Если алгоритмы для целых и вещественных чисел совпадают на 98%, но различаются в самом узком месте, то может быть, лучше продублировать? Конечно, qsort показывает, что можно обойтись одним алгоритмом, но он — произведение искусства :)
Вам знаком принцип DRY? Не потрудитесь ли вы объяснить зачем дублировать и чем это, как вы выразились «лучше»?
Написать три строчки простейшего алгорима сортировки может оказаться (и часто оказывается) быстрее и удобнее...
Перечитайте пожалуйста секцию «Безразличие к результату». Это ваше «быстрее» кому-нибудь потом поддерживать, разбираться и править. Нет, серьезно, перечитайте.
2) Договор банки принимают любой. Конкретно я сдал копию публичной оферты процессинга в банк без каких-либо проблем. Ключевые слова для процессингов: «агентское соглашение». В качестве подтверждающих документов по транзакции — распечатка из админки, мол вот запросил вывод такой то суммы с лицевого счета. Всё.
3) PayPal пока что платит только в банки США, похоже, так что всё равно не актуально.