По-перше, це залежить від того, яку програму ви робите.
ви повинні зробити текстовий або схематичний опис того, як користувач працюватиме з додатком. Виправте кожен можливий сценарій. Складіть приклади, які згодом будуть використані для тестів.
Вирішіть, що належить до функціоналу, а що - до змінної конфігурації. Витяг функціональних можливостей та об'єктів даних із сценаріїв.
Зі сценаріїв приймайте рішення, яким буде ваш додаток. Це сервіс, активність, віджет, навіть постачальник вмісту або складна система, що включає деякі різні компоненти. Перевірте своє рішення на основі сценаріїв.
У випадку складної системи розподіліть функціональні можливості та об'єкти даних між компонентами програми. Складіть список компонентів і що вони є (діяльність чи інше).
Складіть список компонентів інтерфейсу з описом того, що вони роблять (поки НЕ ЯК) Це будуть віджети та дії, фрагменти чи макети пізніше.
Складіть чернетки для компонентів інтерфейсу. Зробіть прості переходи від одного до іншого. Подивіться на інтерфейс користувача. Поверніться до сценаріїв і відтворіть їх усі разом із своїм інтерфейсом проекту. Усі компоненти та класи інтерфейсу вкладаються в одну ієрархію пакетів або пакунків.
Складіть список суб'єктів даних. Вирішіть, що буде в чому. Плануйте їх як колекції або таблиці в БД або різних БД. Складіть їх як класи, перекладіть в іншу ієрархію пакунків чи інший пакет. Сюди ж покладіть помічників БД - класи, які спілкуються з БД за допомогою SQL.
Складіть тестові класи (JUNITs або краще TestNG) для заповнення інтерфейсу користувача та об'єктів даних тестовими даними та їх запуску.
Адаптери не повинні бути загальнодоступними, оскільки вони використовуються лише у батьківському GroupView. Отже, файлів для адаптерів зазвичай немає.
Ви НЕ класти все глобал в спеціальні класи статичних - це погана практика. Ви змішуєте код і конфігурацію. Використовуйте це дуже цікаве рішення . Наразі це найкраще, що я знаю для Android.
Дані конфігурації повинні бути внесені до ресурсів. Якщо деякі з них складні, використовуйте джерела XML та аналізатори. Перетворіть читачів ресурсних даних у глобальні змінні. Не всі вони будуть статичними! Наприклад, вони можуть належати до основного екземпляра Activity.
Не використовуйте в коді неконфігуровані константи! Можливо, ваше ім’я тільки :-). Кожна константа іноді стає непостійною.
З іншого боку, якщо хтось із вас код - це не звичайна програма Java, а сценарії - це суміш даних та мови, тоді ви можете і потрібно змішувати дані та код.
Завжди робіть так: напишіть щось - підключіть щось до групи - додайте тест (и) для цієї нової речі - протестуйте цю нову - протестуйте групу - повторіть. Маленькі кроки!
Редагувати. Ви також можете використовувати тестові розробки - писати тести перед відповідним кодом. Таким чином, виконуючи тести до того, як код буде готовий, у вас є подвійне тестування - таким чином ви перевіряєте, чи дійсно тести реагують на неправильний код.