Jump to content

Bibliotheca (informatica)

E Vicipaedia

Opinio est hanc commentationem esse delendam.

Si huic proposito dissentis, quin sententiam tuam proferas in pagina disputationis.

Català
Català
Català

S'ha proposat l'esborrament d'aquesta pàgina. Si voleu donar-hi la vostra opinió, feu-ho a la pàgina de discussió.

English language
English language
English

It is proposed to delete this page. Please give your opinion on the talk page.

Deutsch
Deutsch
Deutsch

Es wurde vorgeschlagen, diesen Artikel zu löschen. Um Stellungnahme auf der Diskussionsseite wird gebeten.

Esperanto
Esperanto
Esperanto

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.

Haec formula ({{Pagina autotranslata}}) plus quam septem dies sine recensionibus in pagina mansit.

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

Doctrina automatica

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
PythonNumPy, Pandas, Requests, Django, Flask
JavaApache Commons, Guava, JUnit, Spring Framework
C++Boost, STL, OpenGL, Qt
JavaScriptReact, Vue.js, Angular, Node.js, Express
C#.NET Framework, Entity Framework, LINQ
RubyRails, Sinatra, Bundler
GoGorilla, GORM, Gin
RustSerde, Tokio, Rayon

Architectura bibliothecarum

[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.

  • 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.
  • 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 gratia 2.5.3;
  • MAIOR: mutationes cum versionibus prioribus incompatibiles;
  • MINOR: novae facultates cum versionibus prioribus compatibiles;
  • EMENDATIO: correctiones errorum.
Licentia Descriptio Exempla
MITPermissiva; maximam libertatem usus praebet.React, Node.js, jQuery
Apache 2.0Permissiva; etiam praesidia patentium continet.Android, Kubernetes
GPLLicentia copyleft; opera derivata libera manere debent.Linux, WordPress
BSDPermissiva; paucas condiciones imponit.Django, NumPy
LGPLForma mitior licentiae copyleft.Qt, GTK
  • 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]

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.