Apa perbedaan antara pustaka, kerangka kerja, dan API? Mereka semua tampak sama bagi saya. Saya ingin mendengar orang-orang memikirkan ini.
terminology
Bob Dole
sumber
sumber
Jawaban:
Perpustakaan adalah kumpulan fungsi / objek yang melayani satu tujuan tertentu. Anda bisa menggunakan perpustakaan di berbagai proyek.
Kerangka kerja adalah kumpulan pola dan perpustakaan untuk membantu membangun aplikasi.
API adalah antarmuka untuk program lain untuk berinteraksi dengan program Anda tanpa memiliki akses langsung.
Dengan kata lain, anggap perpustakaan sebagai add-on / bagian dari aplikasi, kerangka kerja sebagai kerangka aplikasi, dan API sebagai bagian yang menghadap ke luar dari aplikasi tersebut.
sumber
Sejauh ini jawaban yang baik tetapi mereka kehilangan satu poin kunci - kerangka kerja menggunakan IOC . Kode Anda dikelilingi oleh kerangka kerja. Itu hidup di dalamnya. Sebaliknya, kode Anda hanya menggunakan pustaka atau API. Ia hidup di luarnya. IoC bedanya.
sumber
Perpustakaan adalah kumpulan kode yang dibangun untuk melakukan tugas-tugas umum. Kode perpustakaan cenderung relatif stabil dan bebas bug. Penggunaan perpustakaan yang tepat dapat mengurangi jumlah kode yang perlu ditulis. Ini akan cenderung mengurangi jumlah baris kode untuk aplikasi akan meningkatkan tingkat di mana fungsionalitas disampaikan. Dalam kebanyakan kasus, lebih baik menggunakan rutin perpustakaan daripada menulis kode Anda sendiri.
API (Application Programming Interface) adalah antarmuka ke beberapa fungsionalitas yang memungkinkan aplikasi mengakses fungsionalitas yang tersedia. API dapat disebut sebagai Antarmuka. API ada di banyak tingkatan termasuk sistem, perpustakaan, kerangka kerja, program, dan aplikasi. API harus didefinisikan sebelum kode yang mengimplementasikannya diimplementasikan.
API harus stabil, meskipun bagian dari API dapat tidak digunakan lagi karena berbagai alasan. Semakin luas menggunakan API, semakin sulit untuk mengubahnya. Sebagian besar jika tidak semua API Java 1.0 masih tersedia, meskipun banyak metode telah ditinggalkan.
Kerangka adalah kumpulan API yang dirancang untuk membuat pembangunan aplikasi lebih sederhana. Kerangka kerja menyediakan implementasi untuk komponen yang dapat digunakan kembali. Kerangka kerja yang baik cenderung khusus dalam aplikasi mereka.
Java Collections Framework adalah kumpulan API untuk berbagai jenis objek yang dapat digunakan untuk menangani koleksi. Ini menyediakan hierarki API ke berbagai koleksi. Dalam Java Collections Framework, antarmuka SortedSet memperluas antarmuka Set yang pada gilirannya memperluas antarmuka Koleksi. API ini adalah antarmuka abstrak, dan implementasi sebenarnya memiliki nama yang berbeda. Kerangka Kerja Koleksi membuat implementasi koleksi menjadi mudah, dan menyederhanakan implementasi yang berubah selama pengembangan.
Kerangka kerja dapat dibangun dari kerangka kerja yang lebih kecil seperti yang terlihat dalam Java Spring Framework yang ditargetkan pada pengembangan J2EE. Spring terdiri dari lebih dari selusin kerangka kerja, banyak di antaranya dapat digunakan sendiri atau digantikan oleh kerangka kerja lainnya.
Penggunaan pustaka, API, dan kerangka kerja yang tepat dapat menyederhanakan pengembangan. Komponen-komponen ini menangani masalah-masalah umum, dan memungkinkan tim pengembangan untuk fokus pada masalah spesifik aplikasi.
sumber
Kerangka kerja adalah langkah dari perpustakaan. Jika kotak peralatan Anda adalah perpustakaan maka bengkel Anda akan menjadi kerangka kerja.
Wikipedia mengatakan
Perbedaan penting antara API dan antarmuka pengguna adalah bahwa API memungkinkan perangkat lunak / layanan lain berinteraksi dengan solusi Anda secara terprogram.
API dapat dibangun baik untuk aplikasi (melalui dll atau plugin) atau situs web dan layanan (melalui REST dan layanan web)
sumber
API menentukan cara menggunakan sesuatu yang lain dalam hal objek dan metode apa yang dapat digunakan dari sumber. Misalnya, mengintegrasikan Twitter atau Facebook ke situs menggunakan API dari Twitter atau Facebook untuk memastikan data yang tepat diperbarui.
Kerangka kerja cenderung sedikit bulkier dalam arti karena ini hampir dapat membentuk bahasa sendiri di kali. jQuery menjadi contoh kerangka kerja yang memiliki sintaks sendiri dan membawa sedikit lebih berat dalam hal masuk ke kode saya dalam arti tertentu. Kerangka juga bisa menjadi platform yang membuatnya mirip dengan API dalam arti tertentu, misalnya Kerangka Kerja Win32API atau .Net masing-masing memiliki banyak metode untuk membangun aplikasi sehingga bisa ada Kerangka yang memiliki API di dalamnya dan API yang juga dipandang sebagai Kerangka.
Perpustakaan cenderung berupa file biner yang mengimplementasikan API atau Framework dan karenanya mereka adalah bit yang harus Anda gunakan untuk menggunakan API atau Framework dalam beberapa kasus. Setidaknya begitulah cara saya melihat istilah-istilah ini dan perbedaan di antara mereka.
sumber
Pergi ke perpustakaan dan mulai membaca buku. Jika Anda adalah aplikasi maka koleksi buku adalah perpustakaan. Rak, lemari, dan kompleks yang menampung semua ini merupakan kerangka kerja. Segala sesuatu yang Anda hubungi saat melakukan tugas membaca buku adalah API.
sumber
Pustaka adalah kumpulan kode yang digunakan untuk menyederhanakan tugas-tugas umum - bisa berupa kelas, fungsi atau apa pun yang khusus untuk bahasa atau platform Anda. Contoh yang baik mungkin perpustakaan manipulasi string yang menyediakan pembantu untuk tugas-tugas umum (membangun, membelah, mencari atau mengurutkan string dll).
API (antarmuka pemrograman aplikasi) adalah definisi ('antarmuka') tentang cara bekerja dengan aplikasi, sistem, atau teknologi lain. Ini pada dasarnya mendefinisikan operasi yang tersedia untuk berinteraksi dengan sistem lainnya. API dapat berupa pustaka (artinya API dibungkus dengan pustaka atau sekumpulan kelas), tetapi perbedaannya adalah bahwa API selalu merujuk sistem eksternal - apakah itu basis data, layanan web, aplikasi lain, atau sistem operasi diri.
Kerangka kerja adalah konsep yang lebih besar - biasanya akan berisi sejumlah perpustakaan dan API untuk melakukan tugas-tugas umum. Itu ada pada tingkat konseptual yang lebih tinggi - tidak hanya kumpulan alat, tetapi juga kumpulan pola desain, praktik terbaik, dan metodologi. Kerangka kerja perangkat lunak adalah perpanjangan dari kerangka umum - artinya termasuk menjadi dasar dari mana hal-hal dibangun, memberikan dukungan dan struktur, dan memberikan panduan dan definisi untuk persyaratan.
sumber
Aplikasi ini dikembangkan menggunakan perpustakaan berdasarkan kerangka kerja dan berkomunikasi melalui API.
Jika Anda membuat aplikasi, katakanlah aplikasi pemrosesan gambar online,
Ketika ada panggilan masuk ke aplikasi Anda
kepada orang yang menelepon
alasan mengapa ini ada:
sumber