В Go мы не поддерживаем бессмысленные микробенчмарки. Если вы собираетесь запустить тест, используйте пакет Go testing
.
Например,
Вывод:
$ go test sum_test.go -bench=. -benchmem
goos: linux
goarch: amd64
BenchmarkSum-8 500000 2905 ns/op 4288 B/op 3 allocs/op
$
sum_test.go
:
package main
import (
"testing"
)
func sumInt(b []byte, c chan int) {
sum := 0
for _, num := range b {
sum += int(num)
}
c <- sum
}
func BenchmarkSum(b *testing.B) {
for N := 0; N < b.N; N++ {
dat := make([]byte, 4*1024)
partSum1 := make(chan int)
partSum2 := make(chan int)
go sumInt(dat[:len(dat)/2], partSum1)
go sumInt(dat[len(dat)/2:], partSum2)
sum := <-partSum1 + <-partSum2
_ = sum
}
}
"Не удается запланировать, план перестать работать" - или что-то как этот.
Wireframing не ограничен веб-приложениями; это глубоко используется везде, где общий обзор любой системы необходим (это только что назвало что-то еще).
Функциональные спецификации, когда Вы знаете то, что должно быть сделано и как сделать это, действительно были бы излишеством. Высокоуровневая схема Ваших намерений была бы достаточна. И это никогда не будет ненужным. Это, прежде всего, помогает Вам сфокусироваться на объеме и намерении/цели того, что Вы хотите сделать.
Фокус должен быть на предотвращении потраченного впустую усилия - обнаружение на полпути через это что-то существенное, которое влияет на все другие объекты, отсутствуют, не то, что Вы хотите обнаружить. Wireframing в этом случае помог бы в обнаружении большинства главных функциональных потребностей. Необходимо было бы только уточнить функциональную спецификацию, где абсолютно необходимый. Используя Photoshop для разработки Вашего также будет 'потраченное впустую усилие" - намного лучше для использования эволюционной разработки прототипа (метод RAD) с CSS/HTML - но все еще сочиняет и бумажный макет намерений.
Это, вероятно, зависит от того, с кем Вы работаете. Если это - Вы и разработчик, то функциональная спецификация могла бы быть слишком большой проблемой. Но в моем задании руководители хотят знать точно, что они собираются получить в конце проекта и таким образом, у нас было очень твердое время, реализовывая итерационную разработку. Обычно повторения определяются с каркасами, функциональными спецификациями и дразнят взлеты..:)
37Signals рекомендует пропускать даже Photoshop и идущее право на HTML. См. http://www.37signals.com/svn/posts/1061-why-we-skip-photoshop. Я соглашаюсь с их оценкой предварительного планирования. Я не думаю стоящий времени в конечном счете, когда Вы могли проводить время, создавая рабочий прототип в HTML/CSS/JS.
Я полагаю, что это зависит от того, как хорошо Вы понимаете то, что Вы пытаетесь сделать. Если Вы работаете на клиент, и они не выразили многого в способе требований, можно хотеть подход с чрезвычайно быстрыми повторениями. Если Вы уже имеете хорошее понимание и можете произвести что-то более существенное, не волнуясь о выбрасывании его, потому что это было неправильное направление затем, больше времени может быть проведено. Так или иначе активируемый по щелчку прототип может иметь большое значение в определении, чем реальный сайт должен быть в конце. Если можно получить соглашение по прототипу, то, когда приложение соответствует прототипу, Вы знаете, что это завершено.