开发者

What do these words mean in programming context [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 11 years ago.

I have learned + am learning programming on my own. I see these words often. I would appreciated if someone explained them in the context of programming:

  • B开发者_JS百科ootstrap
  • Sandbox
  • Scaffolding
  • Syntactic Sugar
  • Tear Down
  • Boiler Plate
  • VPN
  • Nightly Builds
  • Unamaged DLL, e.g.: aspnet_isapi.dll


Bootstrap

The very early part of a computer start-up process. True "bootstrap" loaders have not existed on most systems in 20 years or so -- the term comes from the way a "bootstrap loader" was only big enough to read in the next few instructions and overwrite itself with a new, larger loader. This was necessary since the bootstrap loader had to be keyed in by hand, a tedious process involving switches and lights on the front panel of the computer. "Bootstrap" comes from the phrase "pulling yourself up by your bootstraps".

Sandbox

This is a partition of some sort in a computer system where one can experiment and "play" with new concepts without danger of damaging the rest of the system. This term alludes to the "sandbox" that many US kids played in all summer in the days before video games. It was a large box, typically about 6 feet square and a foot deep, filled with sand. Children (mostly boys) would play in it with toy tractors, toy soldiers, small shovels and pails, etc.

Scaffolding

In the construction trades this is a temporary structure used to assist in the construction or maintenance of something more permanent. You will often see, eg, scaffolding erected around a building to paint it or to repair masonry or what-have-you. In computing its a similar concept -- the scaffolding is a (purportedly) temporary piece of software used as a "stand in" for more permanent code and to permit testing of a partially coded application. It may, eg, be a "driver" to test a subcomponent separately from a larger system, or it may be a substitute for a subcomponent that has not yet been coded.

Syntactic sugar

This refers symbols or words in a language syntax that are there purely for human understanding, vs being necessary to specify the intended semantics to the computer. For instance, a language might have a "GO TO xxx" statement, when the "TO" is unnecessary, given that there's no ambiguity in simply saying "GO xxx". C/C++/Java have relatively little syntactic sugar (can't think of any obvious examples offhand), but COBOL, SQL, and a number of other languages have quite a lot.

Boiler plate

Not sure where this term originated, but I suspect it came from business and most likely contract law. It refers to the long, tedious "fine print" sections in some document that were, in all likelihood, copied verbatim from a prior document (and which, with modern word processors, are often embedded in a document using a single macro or document inclusion). Basically it's stuff that's meaningless drivel to all but the lawyers. So, by extension, in software "boiler plate" may be stuff that's always included in a program or procedure, and usually provided automatically or via macros.

VPN

Virtual private network. A concept where a program running on your laptop, say, will provide other programs on your box with an IP connection that is fully encrypted and which connects to a secure computer on the other end. (Ie, it "looks like" a physical ethernet connection to other software.) This allows you to, eg, use a regular browser or email client to communicate with the other end with no fear of having the messages intercepted (except by the CIA, of course), and without having to individually manage the encryption schemes for each tool.

Nightly builds

A technique used in some software shops where every night a product under development is recompiled from scratch and usually subjected to a series of "unit tests". This process may be wholly automatic or may be managed by humans to varying degrees. This is usually reserved for fairly large products (eg, operating systems), or it may be used in, eg, app shops to rebuild and test all of the apps currently under development.


Honestly I don't know them all, but I can say that:

Bootstrap -> it refers to a starting process and related activities

Sandbox -> it represents a mechanism in which an application/code is contained into an area and can't access external resources/hardware/code (iPhone applications are a perfect example)

Tear down -> means destroy objects! It's fundamentally related to Unit Testing frameworks... they have a tearDown() method into which is possible to release/destroy object used for the test

Boiler Plate -> it's a block of "precooked" code that can be used as a starting point to write your own code... methods generated automatically by IDE can be considered boilerplate code


Bootstrap - the program that resides on a special location on harddrive and is responsible for loading and executing the Operating System.

Syntactic Sugar - refers to a syntax that simplifies another syntax that does same thing. For example i+= 1; is syntactic sugar to i = i + 1;

Tear down - refers to the process of freeing resources after they're no longer required.

nightly builds - a program that is compiled every night using current source code usually from a repository such as SVN

Unmanaged DLL - refers to any none .net dlls.


You should be able to find information about them pretty easily if you have some background …

Syntactic Sugar: a + b does not mean anything more than a.__add__(b) (Python).

VPN: Virtual private network -- be in a network from outside with a tunnel.

nightly build: compile during the night

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜