Я хочу знать разницу между функциями низкого уровня и функциями верхнего уровня
Чарльз Симони представил идею " организации действительно больших команд программного обеспечения путем создания одного супер-пупер-программиста uber, пишущего функции верхнего уровня, передавая реализацию функций нижнего уровня команде младших программистов grunt по мере необходимости. Они называли эту должность менеджером программы."
Я хочу знать, каковы функции верхнего уровня, и как я могу его идентифицировать? Мой язык-Javascript. До сих пор это единственный язык, который я знаю, поэтому, пожалуйста дайте мне примеры использования JavaScript, пожалуйста.
кстати, цитата выше взята из Джоэла Спольски. Ознакомьтесь с его блогом и прочитайте, как быть менеджером программ.
спасибо
5 ответов
чем ближе он к человеческому языку, тем выше уровень функции.
чем ближе к машинному языку, тем ниже уровень функции.
Я просто, но вот несколько примеров:
функции высокого уровня:
Car.Start()
Car.MoveTo(Home)
низкоуровневые функции:
Car.Insert(Key);
if (Car.IsKeyInserted() == False)
return False;
Car.StartEngine();
Car.ApplyAccelerator(0.1f);
Car.ChangeGear();
Car.RotateWheel(-25);
когда мы говорим о" высоком уровне "и" низком уровне " в программировании, это обычно относится к уровню абстракции. Функция высокого уровня-это функция, которая абстрагирует детали, вот пример абстракции высокого уровня:
$('div#foo p').show('fast');
этот фрагмент из jQuery JavaScript framework, он демонстрирует очень сложную задачу, но позволяет инициировать ее очень легко. Абстракция более низкого уровня была бы чем-то вроде этого:
$('div#foo p').animate({height: 'show', width: 'show', opacity: 1}, 200);
Это еще jQuery, но больше деталей участвуют, это более низкий уровень. Конечно, вы можете получить еще ниже:
animate(document.getElementById('foo').getElementsByTagName('p'), {
height: 300, width: 600, opacity: 1, alphaFilter: 1
}, 200);
(используя пользовательский метод анимации)
Etc. так далее.
оптимальный уровень абстракции всегда находится под тяжелыми дебатами. Идти слишком высоко может вызвать утечка абстракции но переход на низкий уровень может быть неэффективным и пустой тратой времени, особенно если существуют более высокие абстракции.
функция верхнего уровня - термин, описывающий написание программного кода вне sub или функции. Существуют различные уровни от объявления материала до фактического запуска программного кода, такого как vbs/jscript.
обычно это не рекомендуется или не разрешено на языках, которые, как ожидается, будут сложными. Например, VB разрешает только const и объявляет и dim. C# не позволяет ничего верхнего уровня.
мы обычно использую более высокий уровень для описания абстракции a язык.
в некоторых языках термин будет методом верхнего уровня.
Я помню, что читал это давным-давно.
http://blogs.msdn.com/b/ericlippert/archive/2009/06/22/why-doesn-t-c-implement-top-level-methods.aspx какие ссылки на этот сайт почему C# не разрешает функции, не являющиеся членами, такие как c++
Это относится к тому, как далеко вниз по стеку вызовов функции находится. При запуске программы операционная система вызывает main() или top level, который состоит из вызовов функций следующего нижнего уровня. Каждый в свою очередь вызывает другие функции для выполнения более основных задач, которые в конечном итоге вызывают функции в операционной системе, например, чтобы открыть файл. Функции низкого уровня-это функции в вашей программе, которые не вызывают никаких других функций, которые вы написали (но используете операционную систему или основой для вычисления их результатов и т. д.).
на простой вопрос можно ответить всего несколькими словами, но основная тема охватывает целые книги. Однако это не связано с Javascript, так как Javascript может использоваться для создания функций.
Мистер Вальдес прав.. все зависит от уровня абстракции, который определяет ваша функция.
есть другой подход к разработке программного обеспечения и архитектуре look em up
у этого есть раздел, который отвечает на ваш вопрос довольно мило
на этой странице обсуждается тема с более широкой точки зрения