Bibliotheca (informatica)
|
Opinio est hanc commentationem esse delendam. Si huic proposito dissentis, quin sententiam tuam proferas in pagina disputationis. S'ha proposat l'esborrament d'aquesta pàgina. Si voleu donar-hi la vostra opinió, feu-ho a la pàgina de discussió. It is proposed to delete this page. Please give your opinion on the talk page. Es wurde vorgeschlagen, diesen Artikel zu löschen. Um Stellungnahme auf der Diskussionsseite wird gebeten. Rekomendatas la forigo de tiu ĉi artikolo. Vi estas elkore invitata komenti tion en la diskutejo. |
|
Haec commentatio vicificanda est ut rationibus qualitatis propositis obtemperet. Quapropter rogamus ut corrigas, praecipue introductionem, formam, nexusque extra et intra Vicipaediam. |
|
Pagina polienda Haec commentatio ulteriorem recensionem requirit ut rationibus qualitatis propositis obtemperet. |
|
Haec est pagina autotranslata. Haec commentatio a translatione machinaria videtur oriri. Si potes, converte paginam ad linguam Latinam, vel pete auxilium apud nostram tabernam. Nisi sermo inter hebdomadam correctus erit, commentatio delebitur. |
Bibliotheca in informatica est collectio praeceptorum computatralium et instrumentorum iam paratorum, quae programmatores in programmata sua inserere possunt, ne omnia ab initio componere necesse sit. Bibliothecae magni momenti sunt in arte programmandi hodierna, quia progressionem programmatum accelerant atque qualitatem praeceptorum augent.
Bibliotheca e functionibus, classibus, modulis constantibusque constat, quibus problemata communia solvuntur. Usus codicis iam probati atque emendati tempus operae minuit et numerum errorum coërcet.
Definitio et principia
[recensere | fontem recensere]Bibliotheca informatica est collectio functionum iam descriptarum, quibus multi programmatores iterum iterumque uti possunt. Unaquaeque bibliotheca plerumque certum propositum habet:
- Abstractio: res interiores implicatas celat atque interfaciem simplicem praebet.
- Iteratus usus: idem codex in multis programmatibus adhiberi potest.
- Conformatio: communem rationem problemata solvendi praebet.
- Efficientia: codicem probatum atque saepe ad celeritatem emendatum continet.
Genera bibliothecarum
[recensere | fontem recensere]Bibliothecae generales
[recensere | fontem recensere]Bibliothecae generales multis generibus programmatum inserviunt:
- Bibliotheca ordinaria linguae C: introitus et exitus, memoria, catenae characterum.
- Java Collections Framework: structurae fundamentales datorum.
- Bibliotheca ordinaria Pythonis: magna copia functionum communium.
Bibliothecae speciales
[recensere | fontem recensere]Visio computatralis
- OpenCV — imagines tractat.
- Pillow — imagines mutat.
- scikit-image — imagines analysi subicit.
Doctrina automatica
- TensorFlow — retia neuronalia.
- PyTorch — calculus tensorum.
- scikit-learn — algorithmorum disciplina.
- XGBoost — arbores decisionis gradatim amplificatae.
Tractatio linguae naturalis
- NLTK — analysis textuum.
- spaCy — instrumenta ad linguam naturalem tractandam.
- Transformers — exemplaria linguistica profunda.
Mathematica et calculus numericus
- NumPy — calculus numericus.
- SciPy — algorithmi scientifici.
- Matplotlib — diagrammata graphica.
- Pandas — analysis datorum.
Retia computatralia
- Requests — cliens HTTP.
- Django — compages programmatum interretialium.
- Flask — compages levis interretialis.
- Twisted — retia asynchrona.
Bibliothecae secundum linguam programmandi
[recensere | fontem recensere]| Lingua | Exempla bibliothecarum |
|---|---|
| Python | NumPy, Pandas, Requests, Django, Flask |
| Java | Apache Commons, Guava, JUnit, Spring Framework |
| C++ | Boost, STL, OpenGL, Qt |
| JavaScript | React, Vue.js, Angular, Node.js, Express |
| C# | .NET Framework, Entity Framework, LINQ |
| Ruby | Rails, Sinatra, Bundler |
| Go | Gorilla, GORM, Gin |
| Rust | Serde, Tokio, Rayon |
Architectura bibliothecarum
[recensere | fontem recensere]Partes
[recensere | fontem recensere]Bibliotheca plerumque haec continet:
Fasciculi capitum
- declarationes functionum;
- definitiones generum;
- constantes et macropraecepta.
#ifndef BIBLIOTHECA_H
#define BIBLIOTHECA_H
typedef struct {
int id;
char nomen[50];
} Persona;
int addPerson(Persona p);
Persona getPerson(int id);
#endif
Fasciculi fontium
- corpora functionum;
- definitiones variabilium globalium.
#include "bibliotheca.h"
int addPerson(Persona p) {
return 0;
}
Persona getPerson(int id) {
Persona p;
return p;
}
Documenta
- specificationes API;
- exempla usus;
- praecepta institutionis.
Modi compilationis
[recensere | fontem recensere]- Bibliothecae staticae (
.a,.lib): codex in ipsum programma inseritur. - Bibliothecae dynamicae (
.so,.dll): codex separatim servatur et tempore exsecutionis cum programmate coniungitur. - Bibliothecae linguarum interpretatarum: codex sine compilatione antecedente ab interprete exsequitur.
Exempla practica
[recensere | fontem recensere]Exemplum I: NumPy
[recensere | fontem recensere]import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([2, 4, 6, 8, 10])
c = a + b
d = a * b
M = np.array([[1, 2], [3, 4]])
N = np.array([[5, 6], [7, 8]])
P = np.dot(M, N)
print(c)
print(P)
Exemplum II: Requests
[recensere | fontem recensere]import requests
response = requests.get('https://api.example.com/data')
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Error:", response.status_code)
payload = {'key': 'valor'}
response = requests.post('https://api.example.com/submit', json=payload)
Exemplum III: Django
[recensere | fontem recensere]from django.http import HttpResponse
from django.views import View
class HelloView(View):
def get(self, request):
return HttpResponse("Salve, munde!")
class PersonView(View):
def post(self, request):
nomen = request.POST.get('nomen')
return HttpResponse(f"Nomen tuum est: {nomen}")
Administratio dependentiarum
[recensere | fontem recensere]Programmatores hodierni instrumentis utuntur ad bibliothecas et earum dependentias administrandas.
Python
[recensere | fontem recensere]- pip: fasciculos e Python Package Index instituit.
- conda: ambitus et fasciculos administrat.
- Poetry: dependentias definit atque componit.
numpy==1.21.0
pandas>=1.3.0
matplotlib~=3.4.2
requests>=2.26.0- npm: administrator fasciculorum Node.js.
- Yarn: administrator fasciculorum a Meta primum creatus.
- pnpm: administrator fasciculorum parcus et celer.
Java
[recensere | fontem recensere]- Maven: compilationem atque dependentias administrat.
- Gradle: systema hodiernum ad programmata componenda.
Commoda bibliothecarum
[recensere | fontem recensere]- Celeritas progressionis: codex iam paratus tempus servat.
- Qualitas: codex probatus et emendatus adhibetur.
- Iteratus usus: eadem bibliotheca multis programmatibus inservire potest.
- Facilior sustentatio: errores et vitia securitatis uno loco corrigi possunt.
- Compatibilitas: versiones rite definitae facilius inter se componuntur.
- Conformatio: interfaces communes usum faciliorem reddunt.
Incommoda et pericula
[recensere | fontem recensere]- Multiplices dependentiae: una bibliotheca saepe multis aliis bibliothecis eget.
- Conflictus versionum: versiones diversae inter se repugnare possunt.
- Vitia securitatis: bibliotheca codicem vitiosum vel nocivum continere potest.
- Sustentatio intermissa: bibliothecae obsoletae non amplius renovantur.
- Magnitudo nimia: bibliothecae multae memoriam et facultatem computandi consumere possunt.
Consuetudines optimae
[recensere | fontem recensere]Numeratio versionum
[recensere | fontem recensere]Versiones saepe normam Semantic Versioning sequuntur:
MAIOR.MINOR.EMENDATIO, exempli gratia2.5.3;- MAIOR: mutationes cum versionibus prioribus incompatibiles;
- MINOR: novae facultates cum versionibus prioribus compatibiles;
- EMENDATIO: correctiones errorum.
Licentiae
[recensere | fontem recensere]| Licentia | Descriptio | Exempla |
|---|---|---|
| MIT | Permissiva; maximam libertatem usus praebet. | React, Node.js, jQuery |
| Apache 2.0 | Permissiva; etiam praesidia patentium continet. | Android, Kubernetes |
| GPL | Licentia copyleft; opera derivata libera manere debent. | Linux, WordPress |
| BSD | Permissiva; paucas condiciones imponit. | Django, NumPy |
| LGPL | Forma mitior licentiae copyleft. | Qt, GTK |
Historia
[recensere | fontem recensere]- Annis 1960–1970: primae bibliothecae mathematicae atque introitui et exitui destinatae sunt.
- Annis 1980: bibliothecae graphicae et retiales creverunt.
- Annis 1990: programmatio ad obiecta conversa et magnae bibliothecae increbruerunt.
- Annis 2000: programmata fontis aperti celeriter creverunt et repositoria centralia, sicut CPAN et PyPI, late adhibita sunt.
- Annis 2010: bibliothecae doctrinae automaticae et ingentium datorum floruerunt.
- Annis 2020: intellegentia artificialis, doctrina automatica et computatio sine ministris propriis latius adhibentur.
Repositoria centralia
[recensere | fontem recensere]- Python: PyPI.
- JavaScript: npm.
- Java: Maven Central.
- C et C++: Vcpkg et Conan.
- Rust: Crates.io.
- PHP: Packagist.
De bibliotheca eligenda
[recensere | fontem recensere]Cum bibliotheca eligitur, haec considerari solent:
- Celeritas: facultas processorii centralis vel graphici rite metienda est.
- Memoria: memoria consumpta aestimanda est.
- Dependentiae: bibliothecae paucis dependentiis plerumque praeferuntur.
- Communitas: communitas actuosa sustentationem atque emendationes praebet.
- Documenta: explicationes et exempla clara usum faciliorem reddunt.
Nexus externi
[recensere | fontem recensere]- Libraries.io — dependentiarum observatio.
- Snyk — vitiorum securitatis investigatio.
- Dependabot — renovatio automatica dependentiarum.
Bibliographia
[recensere | fontem recensere]- McDowell, Gayle Laakmann (2015). Cracking the Coding Interview. CareerCup.
- Martin, Robert C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.
- Hunt, Andrew; Thomas, David (1999). The Pragmatic Programmer. Addison-Wesley.







