2009-03-11 18 views
6

Charles Simonyi introdujo la idea de "organizar equipos de software realmente grandes creando un programador súper súper súper escribiendo las funciones de nivel superior, mientras se entrega la implementación de las funciones de nivel inferior a un equipo de jóvenes programadores gruñones según sea necesario. Llamó a este gerente de programa de posición ".Quiero saber la diferencia entre las funciones de nivel bajo y las funciones de nivel superior

Quiero saber cuáles son las funciones de nivel superior y cómo puedo identificarlo? Mi lenguaje es Javascript Hasta ahora, ese es el único idioma que conozco. Por favor, denme ejemplos usando JavaScript, por favor.

Por cierto, la cita anterior está tomada de Joel Spolsky. Mira su blog y lee Cómo ser un gerente de programa.

Gracias

Respuesta

14

Cuanto más se acerca al lenguaje humano, el nivel más alto de la función.

Cuanto más cerca esté del lenguaje de máquina, más baja será la función.

estoy simplyfying pero aquí hay algunos ejemplos:

funciones de alto nivel:

Car.Start() 
Car.MoveTo(Home) 

funciones de bajo nivel:

Car.Insert(Key); 
if (Car.IsKeyInserted() == False) 
    return False; 

Car.StartEngine(); 
Car.ApplyAccelerator(0.1f); 
Car.ChangeGear(); 
Car.RotateWheel(-25); 
+0

1 muy sucinta –

0

Simple pregunta podría responderse en sólo unas pocas palabras pero el tema subyacente cubre libros completos. Sin embargo, no está relacionado con Javascript por decir, solo que Javascript podría usarse para crear las funciones.

Sr. Valdez está bien ... todo depende del nivel de abstracción que define su función.

Hay otro enfoque a la de diseño de software y la arquitectura mirada em up

This one has a section that answer your question quite nicely

This page discuss the subject with a broader perspective

2

Cuando hablamos de "alto nivel" y "bajo nivel" en la programación es por lo general se refiere a la nivel de abstracción Una función de alto nivel es el que abstrae los detalles, aquí está un ejemplo de un alto nivel de abstracción:

$('div#foo p').show('fast'); 

Este recorte es del framework jQuery JavaScript, demuestra una tarea muy complicada, pero le permite iniciar muy fácilmente. Una abstracción nivel inferior sería algo como esto:

$('div#foo p').animate({height: 'show', width: 'show', opacity: 1}, 200); 

Es todavía jQuery, pero más detalles están siendo involucrados, es el nivel más bajo. Por supuesto, usted puede conseguir aún más bajo:

animate(document.getElementById('foo').getElementsByTagName('p'), { 
    height: 300, width: 600, opacity: 1, alphaFilter: 1 
}, 200); 

(utilizando un método de animar a la medida)

Etc. etc.

El nivel óptimo de abstracción es siempre objeto de debate pesada.Ir demasiado alto puede causar abstraction leak pero ir a bajo puede ser ineficiente y una pérdida de tiempo, especialmente si existen más abstracciones.

1

Esto se refiere a qué tan abajo en la pila de llamadas está ubicada la función. Cuando se inicia un programa, el sistema operativo llama al nivel principal() o superior, que consiste en llamadas a las siguientes funciones de nivel inferior. Cada uno a su vez llama a otras funciones para realizar tareas más básicas, que terminan llamando funciones en el sistema operativo, por ejemplo, para abrir un archivo. Las funciones de bajo nivel son las funciones de su programa que no llaman a ninguna otra función que haya escrito (pero utilizan el sistema operativo o el marco para calcular sus resultados, etc.).

2

La función de nivel superior es un término que describe la escritura de código de programa fuera de sub o función. Hay varios niveles desde la declaración de cosas hasta la ejecución del código del programa como vbs/jscript.

Normalmente se desaconseja o no se permite en los idiomas que se espera que sean complejos. VB, por ejemplo, solo permite const y declares y dim. C# no permite nada de nivel superior.

Normalmente utilizamos nivel superior para describir la abstracción de un idioma.

En algunos idiomas, el término será el método de nivel superior.

Recuerdo haber leído esto hace mucho tiempo.

http://blogs.msdn.com/b/ericlippert/archive/2009/06/22/why-doesn-t-c-implement-top-level-methods.aspx la cual remite a este sitio Why C# is not allowing non-member functions like C++

Cuestiones relacionadas