• Чего стоит самое точное расписание электричек с 2003 года
    +2
    Давно и с удовольствием пользуюсь вашим сервисом в Санкт-Петербурге. Очень удобно!
  • Не пишите лишнего
    0
    Когда я работаю с кодом, я предпочту читать краткое содержание, влезая в детали только там, где это действительно нужно. Представим статью в википедии. Она должна ясно и сжато излагать предмет по существу, и давать ссылки на детали по мере необходимости.

    Допускаю, что «бессистемная раскиданность» не доставляет мне проблем благодаря используемому инструменту (IDE). Читать код с большой степенью косвенности в Vim/Emacs наверное так же сложно, как читать распечатанную википедию (без браузера).
  • Не пишите лишнего
    0
    Второе. Основная боль — огромные, непомерно раздутые методы/функции (в комбинации с вложенными структурами),
  • Не пишите лишнего
    0
    так они его и так пишут. Разве нет?
  • Не пишите лишнего
    0
    Ни в коем случае не претендую на «серебряную пулю», которой не существует. Просто отметил определённые перекосы и трудности, с которыми сталкиваюсь в повседневной работе.

    Все ваши замечания очень даже по существу, и их стоит применять, организуя свой код и проект. Хотя публика может и не оценить предложение использовать копипейст :)
    Отличной иллюстрацией проблем с использованием библиотек в индустрии стала истоия «левого отступа» в JavaScript, так что о ней нескоро забудут.

    А вот с «обёмной, но линейной функцией» я бы поспорил. Сколь линейной бы она не была, если она не лезет в экран, её пора разделить на «шаги».
  • Не пишите лишнего
    0
    главное, чтобы определение вложенной процедуры не встречалось посередине длинного метода (незнаю, допускает ли Delphi такое) :) а так отличный вариант решения, да.
  • Не пишите лишнего
    +2
    Никогда не слышал о параллельной разработке код + диаграмма, но видел инструменты где блок-схема является собственно кодом. Это обычно нишевые решения, например для телекоммуникаций.
  • Не пишите лишнего
    0
    Думаю, и ещё через 25 лет мало что изменится. Иногда нужно напоминать и о таких простых вещах )
  • Не пишите лишнего
    0
    сколько времени сожрёт её вызов чисто на запуливание-выпуливание параметров в/из стека.

    Ого! Вот с таким уровнем оптимизации я никогда не сталкивался. Простите уж Java-программисту его наивность :)

    Что касается большого количества параметров выделяемой функции, то, если все они действительно нужны, можно задуматься о выделении структуры или класса. Но только если не приходится экономить на виртуальных вызовах и количестве параметров на стеке :)
  • Не пишите лишнего
    0
    Самоконтроль нужен всем, это правда. Очень помогает, если на проекте есть инструмент code review (GitHub pull request, Gitter, Upsource etc.) в котором несложно предложить коллегам посмотреть на новый код.
  • Не пишите лишнего
    +1
    Согласен с вами. Если задача требует 10 000 действий, то от них никуда не денешься. И разбиения только увеличивают количество сущностей.
    Но правильно выбраное разбиение на абстракции может разбить эту задачу на (условно) 10 * 10 * 10 * 10 структурных единиц (не только методов, но может быть и классов). В зависимости от того, на сколько глубоко нужно изучить механизм решения задачи, можно будет прочесть (условно) один метод на 10 строк. Или ещё 2-3 метода по 10 строк и так далее. Гораздо легче сфокусироваться, погружаясь в детали.

    Я столкнулся с таким, казалось бы излишним, разбиением в open source проекте, к которому готовил pull request, и оно меня спасло. Оно того стоит.
  • Не пишите лишнего
    0
    Спасибо, всё правда. Видимо, я плохо описал пример с if. Там речь шла о большом количестве кода внутри «веток». Пока дочитаешь до else, условие успеет уйти с экрана. В таком случае код «веток» следует вынести (функции, объекты и т. д.)
  • Не пишите лишнего
    +5
    1. Нет, пересказа не было.
    2. Была такая мысль. Но проиллюстрировать проблемы с большим объёмом кода можно только большим объёмом кода. Который никто не любит читать :)
  • Не пишите лишнего
    +3
    Проблема с объёмом появляется тогда, когда логику проследить становится слишком трудно из-за самого объёма. Бороться нужно именно с такой ситуацией.
    А преимущества и недостатки «волшебных однострочников» можно обсудить за дружеской кружкой пива :)
  • Не пишите лишнего
    +1
    Истина конечно же где-то посередине.
  • Не пишите лишнего
    +4
    Я ничего не имею против коротких лямбд. Для того они и существуют. Но когда внутри callback-а кто-то ставит в очередь Runnable внутри которого ещё и дёргает map по коллекции, становится очень печально. Эдакий callback hell на стероидах.
    на универсальность не претендую :)
  • Не пишите лишнего
    +10
    Напомнить бывалым, что не написанный код содержит заведомо меньше ошибок, чем написанный.
    К сожалению, в последнее время встречаю много огромных «простыней» за авторством именно бывалых (5+ лет разработки), уверенных в себе людей
  • TeamCity 9.0: импорт проектов, настройки в VCS, фоновая очистка и панды
    0
    Самый быстрый способ всё настроить — нажать кнопку Create project from URL и дать путь до вашего репозитория.

    PS а можно вас попросить билд лог со стек-трейсом? Посмотрим, что именно случилось.
  • Doom 2014
    0
    Сколько-сколько?! Совсем с ума посходили…
  • Игры под угрозой
    +24
    Есть мнение, что об ошибках эффективнее сообщать в личку.
  • Крупнейшая битва в истории EVE Online: уничтожено кораблей на $200 000
    0
    Естественно :) еще года 3 назад…
  • Опыт по краудфандингу геймерского фестиваля NextCastle Party
    0
    Большое дело делаете! Успехов вам.
  • Scala как расширенная Java или Java++
    0
    В качестве билд-тула для Scala замечательно справляется Gradle. Получаются читабельные скрипты сборки с отличной расширяемостью. Понять, что именно происходит на много легче, чем в sbt. Ну и до кучи обратная совместимость со старым добрым Ant :)
  • О языке Kotlin для Java-программистов
    +2
    Groovy — динамическая типизация, Kotlin — статическая. Отсюда все вытекающие недостатки и преимущества (скорость работы приложений, обнаружение ошибок в compile-time и т.п.)

    Развернутое сравнение со Scala читайте здесь. В основе отличий лежат два принципа:

    1. Компиляция как минимум не медленнее, чем у Java
    2. Сделать язык по возможности более простым.

    Во избежание холивара, цитирую: «Если вас Scala полностью устраивает, возможно Kotlin вам и не нужен».
  • Кастомная обработка jUnit тестов в TeamCity
    0
    В JUnit действительно отсутствует поддержка зависимостей между тестами или упорядоченное исполнение тестов.

    Все это реализовано в другом фреймворке: TestNG. Чтобы не заниматься поддержкой собственных «велосипедов» вам стоит взглянуть на него.

    Что касается TeamCity, то в его задачи не входит поддержка порядка исполнения тестов. Зато входит необходимость как можно раньше сообщить об упавших/исправленных тестах. Для этого имеет смысл выполнить падавшие недавно тесты как можно раньше, т.е., изменить порядок исполнения.
  • PVS-Studio: анализируем код Doom 3
    +1
    помимо Idea можно посмотреть checkstyle и findbugs
  • Секреты JDK
    0
    Спасибо, уволок в избранное. Может пригодиться при отладке чужого кода.
  • Разработка приложений на языке Scala
    0
    1. Структура проекта создаётся с помощью IntelliJ IDEA Community Edition. Gradle вполне доволен этой структурой.
    2. «Вся либа скалы тянется?» Для компиляции и тестирования — да, конечно. А уже после сборки на результаты натравливается Proguard, отсекающий все лишнее

    Правда, что ли, топик написать :)
  • Разработка приложений на языке Scala
    0
    Возможно. В любом случае, стоит обращать внимание не на количество плагинов само по себе, а на те задачи, которые эти плагины решают.

    SBT — узкоспециализированный инструмент для Scala-проектов. Gradle — общий инструмент для сборки, успешно работающий с множеством языков и framework'ов.
  • Разработка приложений на языке Scala
    0
    Imho, материал не тянет на отдельный топик. Всё делается по инструкции :)
    Вот вам рабочий build.gradle

    buildscript {
      repositories {
        mavenRepo(urls: 'http://jvoegele.com/maven2/')
      }
      dependencies {
        classpath 'com.jvoegele.gradle.plugins:android-plugin:1.0.0'
      }
    }
    
    apply plugin: 'scala'
    apply plugin: 'android'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        // Libraries needed to run the scala tools
        scalaTools 'org.scala-lang:scala-compiler:2.9.0'
        scalaTools 'org.scala-lang:scala-library:2.9.0'
    
        // Libraries needed for scala api
        compile 'org.scala-lang:scala-library:2.9.0'
    }
    
    task wrapper(type: Wrapper) {
        gradleVersion = '1.0-milestone-1'
    }
    
  • Разработка приложений на языке Scala
    0
    На пустом проекте (шаблон, созданный IDEA) — около 14 килобайт.
  • Доставка Amazon.com
    0
    Внезапное обновление: только что обнаружил, что на www.betterworldbooks.com образовалась бесплатная доставка в любую точку мира!
  • Разработка приложений на языке Scala
    +1
    Мне удалось завести Gradle и заставить работать Proguard. Всё работает, как часы!
  • Письмо
    +2
    На много более жизненное. Зачёт :)
  • Рейдерский захват радиостанции «Радио Рокс»
    0
    Очень печально будет, если формат станции действительно «сползёт». Судя по тому, что крутится, формат уже меняется.
  • Plus: Вход строго ограничен
    0
    Вобщем, за инвайтами — в личку
  • Plus: Вход строго ограничен
    0
    done
  • Plus: Вход строго ограничен
    0
    done
  • Plus: Вход строго ограничен
    0
    done
  • Plus: Вход строго ограничен
    0
    Получено, спасибо!