• Жизнь без .gitignore

    В статье рассказывается, что файл .gitignore - мусорка, которая может еще и навредить. Например, вы положили туда паттерн, который избавляет вас от ваших специфичных файлов, которые не должны попасть в VCS, а ваш коллега получил эту информацию, и узнал, например, какую вы, используете IDE. В той статье так же описано, как жить без .gitignore файла с помощью .git/info/exclude. Но если вам не хочется что-то править в .git и вы используете IDE от JetBrains, то добро пожаловать.

  • Android Full-Screen Dialog Library

    Существует компонент в Material Design, который предназначен для отображения диалога во весь экран вашего приложения. Выглядит это так:
    True full-screen dialog

    К сожалению, в стандартной библиотеке дизайна не реализован такой компонент. Поэтому предлагаю вашему вниманию Full-Screen Dialog Library.

  • Приватный метод - повод для нового класса

    Следующий код требует рефакторинга:

    public class MailingServiceImpl implements MailingService {
    
        @Override
        public sendMail(Message message) {
            Message signedMessage = addDefaultSign(message);
            ...
        }
    
        /**
         * Добавление подписи по умолчанию
         * @param message сообщение
         * @return сообщение с подписью
         */
        private Message addDefaultSign(Message message) { ... }
    }
    

    Конкретно, метод addDefaultSign нужно вынести в отдельный сервис. Почему?