• Разработка под Android

    Не знаю як говорять гуру, але в мене стосовно MVC наступна думка. Первинним є розділення view і model. Controller є вторинним.

    Зокрема я вважаю що activity — це «товсте» view. Клас який є макетом використовуваних в аплікації даних — це model (тут як і всюди, нічого нового). А от контроллера може й не бути. Хоча якщо в аплікації є всякі сервіси, асинк таски, ресівери, то я розглядаю їх як елементи контроллера.

  • Разработка под Android

    А в чем конкретно в данном случая проблема с «глобальностью стану»? Вы ее можете описать?

    Багато чого наведено тут c2.com/...VariablesAreBad

    Від себе додам ще таку річ. Давайте абстрагуємося і проведемо деяку паралель. Виклик activity замінимо на виклик метода, а передачу даних в activity — на передачу даних в метод.

    Тоді варіант з Parcelable перетворився б на щось таке (Варіант 1):
    void doSomething(Type argPassedByValue) {
    ...

    }

    А ваш варіант із SparseArray перетворився б на таке (Варіант 2):
    void doSomething() {
    Type argPassedByReferenceValue = Global.Get();
    ...

    }

    Цей другий варіант звичайно можна було б покращити, явно виразивши залежність в сигнатурі методу (Варіант 3):
    void doSomething(Type argPassedByReferenceValue) {
    ...

    }

    АЛЕ це покращення можливе тільки в нашому спрощеному прикладі, бо тут ми оперуємо звичайним методом. У випадку ж з activity ми не можемо собі такого дозволити і залишаємося з гіршим варіантом — Варіантом 2. Але ми повинні розуміти що це дійсно нехороший варіант. І якщо нам тим не менше треба до нього прибігати, то значить ми свідомо йдемо на певні жертви. Хоча ці жертви можливо й оправдані (бо інакше ми просто не розв’язжемо поставлену задачу).

  • Разработка под Android

    А в чем конкретно в данном случая проблема с «глобальностью стану»? Вы ее можете описать?

    Інформація на цю тему доступна й в інтернеті. Якщо поцікавитеся, легко знайдете. Але я не кажу що глобальність тут є кінцем світу, просто напевно це все-таки недолік (хоча в деяких випадках можливо й оправданий).

    Я его привел как альтернативу использования Parcelable

    Я думаю що мейнстрімом для виклику activity є саме Parcelable. І якщо хтось буде використовувати описаний вами підхід в тій більшості випадків, де має бути використаний Parcelable, то це буде погано. Тобто наголос саме на цій ідеї.

    А обсуждаемый вопрос фактически сводится к тому, как организовывать архитектуру работы с данными, и как выглядит MVC на этой платформе.

    Це обговорення почалося з першого поста в якому звучало питання. Я особисто був трохи не згідний з постановкою питання. Бо постановка підрозумівала те що групу величин можна об’єднати в клас тільки для того щоб їх було легше передавати. Тоді як я кажу що те об’єднані величини в клас чи не об’єднані за великим рахунком не є НАСЛІДКОМ того чи вони кудись передаються. Об’єднання/необ’єднання величин в клас є по суті фундаментальним рішеням (ПРИЧИНОЮ) без якого взагалі не можливе існування правильної моделі даних в аплікації. (А розмова про все решта — то вже потім...)

  • Разработка под Android

    В деяких випадках концептуально неправильно використовувати сервіс замість AsyncTask. Як на мене, не можна просто так взяти й використати сервіс просто тому, що так більше подобається. В сервіса й AsyncTask різні ніші. Тому питання про те, а якже правильно використати AsyncTask, є дійсно актуальним.

  • Разработка под Android

    Дивіться, я не кажу що те що ви пропонуєте є поганим. Я кажу що можливо воно не таке вже й хороше. Тобто воно має свої недоліки (глобальність стану) і відповідно не може бути якоюсь панацеєю. Бо мені здалося що ви подаєте цей спосіб як мало не єдиноправильний у випадку одного процесу, хоча він напевно підходить все-таки для окремих ситуацій. [А глобальність стану полягає в тому що дані які ви хочете передати є глобальними в рамках аплікації а не локальними для activity.]

  • Разработка под Android

    Есть масив, он глобальный

    А це що по-вашому не варіація на тему глобального стану?

    Над рештою подумаю.

  • Разработка под Android

    Ні, ви неуважно читали той текст, на який я вказував. Не суть в тому, змінна це чи ні. І у вашому випадку глобальний стан звичайно ж буде. А аргументи проти (не всі, але більшість) підходять ще й як.

    Тепер стосовно вашої задачки. Скажу так, що я ще не випрацював для себе канонічну стратегію поведінки в даній ситуації. Але це в мене на порядку денному. Як би там не було, я думаю, цією задачею ви ставите правильне питання. Хоча тема ця специфічна, і вона значно вужча ніж тема передавання даних в activity загалом. Деякі люди взагалі говорять що ідея перестворення activity при зміні конфігурації є невдалим архітектурним рішенням команди розробників Android.

  • Разработка под Android

    Хм...

    Ось тут наприклад є деякі аргументи за Parcelable і проти глобального стану:

    stackoverflow.com/...tatic-variables

  • Разработка под Android

    Що значить «удобнее» і «тоже подойдет»?

    Якщо мої дані — це екземпляр мого custom класу, то які в мене ще альтернативи крім роблення цього класу Parcelable?
    Якщо ж мої дані — екземпляри вбудованих примітивних або вже Parcelable типів, то які в мене ще альтернативи крім пар ключ/значення?

    Чи ви хочете сказати, що просто впадло впихувати і випихувати якісь конкретні пари ключ/значення і краще створити для них всіх окремий клас? Ну так якщо цих пар дуже багато або якщо вони впихуються й випихуються в багатьох місцях, то це швидше за все показник того що вони вже давно повинні були знаходитися в окремому класі. І не тому що так їх буде легше передавати, а тому що саме така абстракція є для них правильною моделлю.

  • Зарплаты программистов — декабрь 2011

    Та не в якості вибірки справа: мода і матсподівання тут не підходять в принципі.

    Мода не має нічого спільного з відношенням порядку на множині. Про яке визначення середнього значення з множини за її допомогою можна взагалі вести мову? Запитання риторичне.

    А матсподівання — це по суті узагальнене середнє арифметичне. Тобто у випадку зарплат, це було б мабуть середнє арифметичне зарплат всіх працівників, коли кількість працівників прямує до нескінченності. Причому може бути так, що абсолютна більшість працівників реально отримує зарплату меншу від цього середнього арифметичного, бо просто ті хто багато заробляє «витягують» це середнє арифметичне наверх. Тобто якогось практичного змісту в матсподіванні як критерії визначення середньої зарплати немає.

    Медіана ж видається цілком нормальним інструментом. Вона чітко говорить, що одна половина працівників має зарплату не більшу від певного числа, а інша половина — не меншу.

    Підтримали: Darya Nazarkina, Yuriy Koziy
  • Что такое профессионализм?

    Та не смішіть. У вас професіонал — це просто небезробітний. Може я неправильно зрозумів, але з вашого визначення, на мою думку, виходить саме так.

    Підтримали: Morgan Yopt, Dmytro Kostochko
  • Гордость

    Когда тебя это беспокоит

    Коли хвилює, це класно. Сувора правда життя полягає в тому, що час від часу треба робити те, що не є комфортним. Так можна досягнути чогось нового — «вийти з матриці».

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

    Коли ти намагаєшся вийти з «матриці», все за її межами здається чужим. Для того щоб подолати цю ілюзію, потрібні певні зусилля. Це і є та ціна, яку треба заплатити за вихід. Але вийшовши з «матриці», ти стаєш частиною нового світу — там більше немає нічого чужого.

  • Гордость

    лучше быть самим собой, не так ли?

    Yes.

    Але деколи треба виходити за межі своєї зони комфорту, інакше не буде розвитку.

  • Гордость

    Так у кого будет скорее реальная, красивая, живая девушка?

    Звучить як шантаж)))

  • Гордость

    Один я не понимаю к чему товарищ клонит?

    Я теж не розумію))) Ви не один!!!!!!

  • Что хуже, уйти или остаться?

    Повторюю ще раз, перестаньте плакатися про якісь відпустки чи ще там щось. Мені це нецікаво та й мова йшла про інше. Не треба нікому тут замилювати очі.

    Поясніть мені, в якій країні достатньою умовою для підвищення зарплати є народження дитини. Наперед дякую.

  • Что хуже, уйти или остаться?

    Та перестаньте утрирувати в надії викликати в когось сльозу. Не солідно якось, чесне слово.

    Весь світ перед вами в боргу, ага. Всі вам щось винні. Ну признайтеся, любите ж халяву, любите, правда? Ну признайтеся))). Тягне ж вас до неї, рідненької. Ну так трошки, в глибині душі, але єеее). Правда? Ато, як же ж її можна не любити, тим більше якщо вона майже поряд). Иии, буквально на відстані витягнутої руки... Ви ж не робот, кінець-кінцем. На крайняк, можна зробити розумний вираз обличчя і сказати щось типу

    А потім верещать що народжуваність гівно....

    або якусь іншу фразу яка буде підходити до контексту розмови.

  • Что хуже, уйти или остаться?

    А ребёнок тут при чём?

    А ніхто не знає при чому. Крім Ольги, звичайно. На її думку, компанія несе відповідальність за народження дітей в сім’ях працівників. Напевно це якось пов’язано з темою сексу на корпоративах із сусідньої вітки.

  • Startup Mixer Kiev: rock-n-roll

    и в этом мы по одну сторону

    От і добре)))

    А щодо «жалюгідної обмеженості», ну, трохи грубо, згідний... Але хтось мусів це сказати. Як би там не було, давайте залишимо темні відтінки в минулому і будемо дивитися вперед. Я надіюсь в новому році на нас чекає дуже багато хорошого.

    Підтримав: Alexandr Donichenko
  • Startup Mixer Kiev: rock-n-roll

    Ви, очевидно, будете здивовані, але ІНКОЛИ в займанні принципової позиції немає нічого поганого.

← Сtrl 12 Ctrl →