1. JavaScript / Говнокод #26729

    0

    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
    import * as React from 'react';
    import {CityFromSelector} from './components/cityFromSelector';
    import {CountryToSelector} from './components/countryToSelector';
    import {MealsTypeSelector} from './components/mealsTypeSelector';
    import {DepartureDatesRangeSelector} from './components/departureDatesRangeSelector';
    import {HotelCategoriesSelector} from './components/hotelCategoriesSelector';
    import {ResortSelector} from './components/resortSelector';
    import {HotelsSelector} from './components/hotelsSelector';
    import {TouristsSelector} from './components/touristsSelector';
    import {OperatorsSelector} from './components/operatorsSelector';
    import {NightsCountRangeSelector} from './components/nightsCountRangeSelector';
    import {PriceRangeSelector} from './components/priceRangeSelector';
    import {FlightInfo} from './components/flightInfo';
    import {SearchFormActionCreator} from './search/searchFormActionCreator';
    import {HotelsCountPopup} from './components/hotelsCountLimitPopup';
    import * as throttle from 'lodash/throttle';
    import * as filter from 'lodash/filter';
    import * as union from 'lodash/union';
    import * as merge from 'lodash/merge';
    import * as reduce from 'lodash/reduce';
    import * as chunk from 'lodash/chunk';
    import * as difference from 'lodash/difference';
    import * as differenceBy from 'lodash/differenceBy';
    import { Tour } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/Tour';
    import { logViewedTours } from 'sletat-api-services/lib/GraphApiServices/Main.svc/LogViewedTours/LogViewedTours';
    import { OilTax } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/OilTax';
    import { VisaFee } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/VisaFee';
    import { getHotelImageSrc } from 'sletat-common-utils/lib/tour/getHotelImageSrc';
    import { declineByCount } from 'sletat-common-utils/lib/format/declineByCount';
    import { Tour as GetToursTour } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/Tour';
    import { Tour } from './tour';
    import { IVisaFee } from './visaFee';
    import { IOilTax } from './oilTaxes';
    import { UiPopup } from 'react-sletat-uikit/lib/ui-popup/UiPopup';
    import { UiLoader } from 'react-sletat-uikit/lib/ui-loader/UiLoader';
    import {
        SendConfirmEmailResults,
        recoverySendConfirmEmail,
        registrationSendConfirmEmail
    } from 'sletat-api-services/lib/SletatServices/Services/SendConfirmEmail/SendConfirmEmail';
    import { authentification } from 'sletat-api-services/lib/SletatServices/Authentification';
    import LoginPopup from './components/Login';
    import RegistrationPopup from './components/Registration';
    import RecoveryPopup from './components/Recovery';
    import SuccessPopup from './components/Success';
    import { PopupTypes } from './constants';

    может это уже нормально в современном фронтенде

    Запостил: tablecell, 02 Июня 2020

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

    • sletat-common-utils

      ну а что плохого в библиотеках?
      Ответить
      • Ну если какому-то модулю надо столько библиотек, то он весьма божественный. И не мешало бы его распилить на меньшие части.
        Ответить
        • Да тут аффтар наоборот старался и импортил по одной функции-компоненту из библиотеки по 8 раз - все ради размера бандла. Современные бандлеры правда и без него бы справились
          Ответить
          • Так и драма в том, что там весь этот прожект для одного бандла, собственно фронт главной страницы .
            И shared кода нет по проектам.
            То есть все эти -utils и контролы только под одну страницу.

            Лично для себя решил вообще без ECMA модулей, просто typescript namespaces для удобства. А эта экономия на спичках полезна только на проекте уровня Gmail или там VK.
            Ответить
            • >без ECMA модулей
              Насколько я знаю, по назначению их применяют только энтузиасты, сайты которых не поддерживают ничего коме найтли сборок хрома и мозиллы, все остальные их используют только для сборки вебпаком
              Собираешься весь код в одном файле хранить или склеивать файлы скриптами?
              Ответить
              • Ну разбиение на файлы, естественно в разумных пределах, без этих крайностей в redux стиле.
                А так да, gulp и склеит в нужном порядке и сожмет.
                Ответить
            • > или там VK.

              ты переоцениваешь этих товарищей
              Ответить
              • https://vk.com/js/lang3_0.js?26519048
                try{stManager.done('lang3_0.js');}catch(e){}


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

        А ещё фортепьяно, как правило, гнилое (вода с цветочных горшков проникает в корпус).
        Ответить
    • это вы по ошибке его недавно зарелизили? https://libraries.io/npm/sletat-api-services
      Ответить
    • --Папа, а правда, что джаваскрипт -- припизднутый язык?
      --Да, сынок, правда
      --Папа, а как это -- "припизднутый"?
      --А вот смотри, сынок: https://developer.mozilla.org/en-US/docs/Glossary/Falsy
      There are 8 falsy values:
      
      false	The keyword false
      0	The number zero
      -0	The number negative zero
      0n	BigInt, when used as a boolean, follows the same rule as a Number. 0n is falsy.
      ""	Empty string value
      
      null  the absence of any value
      undefined	the primitive value
      NaN  not a number
      Ответить
      • То ли дело «Ruby»!
        Ответить
        • нормально все в руби
          irb(main):018:0> puts "true" if []
          true
          irb(main):013:0> puts "true" if ""
          true
          => nil
          irb(main):014:0> puts "true" if 0
          true
          => nil
          irb(main):015:0> puts "true" if false
          => nil
          irb(main):017:0> puts "true" if nil
          => nil


          только false и nil
          Ответить
          • Именно поэтому я за «Ruby».
            Ответить
            • Ты уже погрузился в руби?
              Про модули прочитал?
              Ответить
              • Ещё нет, просто вспомнил случайный факт о том, что в «Ruby» (почти) нет неявных кастов в false.
                Ответить
      • А вот «Python» сосёт (не исчерпывающий список, я мог что-то забыть):
        >>> print([bool(obj) for obj in (0, -0, 0.0, None, [], (), {}, '')])
        [False, False, False, False, False, False, False, False]


        UPD:
        >>> bool(math.nan)
        True
        Ответить
        • И любая другая хуйня с перегруженным __bool__().
          Ответить
          • ну перегружая __bool__ ты явно заказывал же чтобы твой код запускался. Это как converting constructor.

            В "Яебу", кстати, нет такого (кмк). to_s есть (для каста в строку) а to_b нету
            Ответить

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