Araştırma Makalesi
BibTex RIS Kaynak Göster

ORCA: GO Programlama Dili için ORM/ODM Kütüphanesi

Yıl 2020, Ejosat Özel Sayı 2020 (ARACONF), 310 - 317, 01.04.2020
https://doi.org/10.31590/ejosat.araconf40

Öz

Bu bildiride Go olarak bilinen Golang dili için geliştirilmiş ORCA adında yeni bir ORM kütüphanesi sunulmaktadır. Geliştirilen kütüphane SQLite, MongoDB, RedisDB ve MemcacheDB olmak üzere dört farklı veritabanı sistemine veritabanı tipinden bağımsız olarak destek sunmaktadır. Böylelikle rakiplerinden farklı olarak, veritabanı ve hatta veritabanı tipi değiştirildiğinde bile uygulamanın kaynak kodunu değiştirmeden kullanabilme imkanı sunmaktadır. Bunun dışında benzerlerine göre daha kullanıcı dostu ve daha yüksek performans sağlayan bir kütüphanedir. Ayrıca kullanıcının kendi fonksiyonlarını yazabilmesini sağlayan yerel kanca (local hook) ve global kanca (global hook) yapılarını sunmaktadır.

Kaynakça

  • Y. Ueda and M. Ohara, “Performance competitiveness of a statically compiled language for server-side Web applications,” in ISPASS 2017 - IEEE International Symposium on Performance Analysis of Systems and Software, 2017, pp. 13–22.
  • “blueperf/acmeair-monolithic-java: This version of Acme air is redesigned removing hardcoded components to WXS and also optimized for Cloud Data Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-java. [Accessed: 03-Feb-2020].
  • “blueperf/acmeair-monolithic-nodejs: A Node.js implementation of the Acme Air Sample Application. With datastore support of MongoDB. With runtime support of Bluemix/CloudFoundry, Docker... With Micro-Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-nodejs. [Accessed: 03-Feb-2020].
  • “index | TIOBE - The Software Quality Company.” [Online]. Available: https://www.tiobe.com/tiobe-index/. [Accessed: 13-Feb-2020].
  • “jinzhu/gorm: The fantastic ORM library for Golang, aims to be developer friendly.” [Online]. Available: https://github.com/jinzhu/gorm. [Accessed: 03-Feb-2020].
  • “xorm/xorm: Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - xorm - Gitea: Git with a cup of tea.” [Online]. Available: https://gitea.com/xorm/xorm. [Accessed: 03-Feb-2020].
  • “src-d/go-kallax: Kallax is a PostgreSQL typesafe ORM for the Go language.” [Online]. Available: https://github.com/src-d/go-kallax. [Accessed: 03-Feb-2020].
  • “ezbuy/redis-orm: write db yaml once, generate go orm code everywhere.” [Online]. Available: https://github.com/ezbuy/redis-orm. [Accessed: 03-Feb-2020].
  • “zebresel-com/mongodm: A golang object document mapper (ODM) for MongoDB.” [Online]. Available: https://github.com/zebresel-com/mongodm. [Accessed: 03-Feb-2020].
  • “MehmetEminKaymaz/Orca: Simple and Powerful ORM for Go Language.” [Online]. Available: https://github.com/MehmetEminKaymaz/Orca. [Accessed: 13-Feb-2020].
  • “go-pg/pg: Golang ORM with focus on PostgreSQL features and performance.” [Online]. Available: https://github.com/go-pg/pg. [Accessed: 13-Feb-2020].
  • “PolyglotPersistence.” [Online]. Available: https://martinfowler.com/bliki/PolyglotPersistence.html. [Accessed: 03-Feb-2020].
  • “list - The Go Programming Language.” [Online]. Available: https://golang.org/pkg/container/list/. [Accessed: 13-Feb-2020].
  • K. Elhardt and R. Bayer, “A Database Cache for High Performance and Fast Restart in Database Systems,” ACM Trans. Database Syst., vol. 9, no. 4, pp. 503–525, Dec. 1984.
  • R. Jain, Y. B. Lin, S. Mohan, and C. Lo, “A Caching Strategy to Reduce Network Impacts of PCS,” IEEE J. Sel. Areas Commun., vol. 12, no. 8, pp. 1434–1444, 1994.

ORCA: An ORM/ODM Library for Go Programming Language

Yıl 2020, Ejosat Özel Sayı 2020 (ARACONF), 310 - 317, 01.04.2020
https://doi.org/10.31590/ejosat.araconf40

Öz

This paper proposes a new ORM library, namely ORCA, for the Golang (Go) language. The proposed library supports four different database systems (SQLite, MongoDB, RedisDB and MemcacheDB), regardless of database type. Thus, unlike its competitors, it offers the possibility to use the database without changing the source code ıf when the database or even the database type is changed. Besides, ORCA performs better with a more user friendly syntax compared to its competitors. ORCA also offers local hook and global hook structures that enable the user to write their own functions.

Kaynakça

  • Y. Ueda and M. Ohara, “Performance competitiveness of a statically compiled language for server-side Web applications,” in ISPASS 2017 - IEEE International Symposium on Performance Analysis of Systems and Software, 2017, pp. 13–22.
  • “blueperf/acmeair-monolithic-java: This version of Acme air is redesigned removing hardcoded components to WXS and also optimized for Cloud Data Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-java. [Accessed: 03-Feb-2020].
  • “blueperf/acmeair-monolithic-nodejs: A Node.js implementation of the Acme Air Sample Application. With datastore support of MongoDB. With runtime support of Bluemix/CloudFoundry, Docker... With Micro-Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-nodejs. [Accessed: 03-Feb-2020].
  • “index | TIOBE - The Software Quality Company.” [Online]. Available: https://www.tiobe.com/tiobe-index/. [Accessed: 13-Feb-2020].
  • “jinzhu/gorm: The fantastic ORM library for Golang, aims to be developer friendly.” [Online]. Available: https://github.com/jinzhu/gorm. [Accessed: 03-Feb-2020].
  • “xorm/xorm: Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - xorm - Gitea: Git with a cup of tea.” [Online]. Available: https://gitea.com/xorm/xorm. [Accessed: 03-Feb-2020].
  • “src-d/go-kallax: Kallax is a PostgreSQL typesafe ORM for the Go language.” [Online]. Available: https://github.com/src-d/go-kallax. [Accessed: 03-Feb-2020].
  • “ezbuy/redis-orm: write db yaml once, generate go orm code everywhere.” [Online]. Available: https://github.com/ezbuy/redis-orm. [Accessed: 03-Feb-2020].
  • “zebresel-com/mongodm: A golang object document mapper (ODM) for MongoDB.” [Online]. Available: https://github.com/zebresel-com/mongodm. [Accessed: 03-Feb-2020].
  • “MehmetEminKaymaz/Orca: Simple and Powerful ORM for Go Language.” [Online]. Available: https://github.com/MehmetEminKaymaz/Orca. [Accessed: 13-Feb-2020].
  • “go-pg/pg: Golang ORM with focus on PostgreSQL features and performance.” [Online]. Available: https://github.com/go-pg/pg. [Accessed: 13-Feb-2020].
  • “PolyglotPersistence.” [Online]. Available: https://martinfowler.com/bliki/PolyglotPersistence.html. [Accessed: 03-Feb-2020].
  • “list - The Go Programming Language.” [Online]. Available: https://golang.org/pkg/container/list/. [Accessed: 13-Feb-2020].
  • K. Elhardt and R. Bayer, “A Database Cache for High Performance and Fast Restart in Database Systems,” ACM Trans. Database Syst., vol. 9, no. 4, pp. 503–525, Dec. 1984.
  • R. Jain, Y. B. Lin, S. Mohan, and C. Lo, “A Caching Strategy to Reduce Network Impacts of PCS,” IEEE J. Sel. Areas Commun., vol. 12, no. 8, pp. 1434–1444, 1994.
Toplam 15 adet kaynakça vardır.

Ayrıntılar

Birincil Dil Türkçe
Konular Mühendislik
Bölüm Makaleler
Yazarlar

Mehmet Emin Kaymaz Bu kişi benim 0000-0002-0710-5732

Övünç Öztürk 0000-0001-7127-7902

Yayımlanma Tarihi 1 Nisan 2020
Yayımlandığı Sayı Yıl 2020 Ejosat Özel Sayı 2020 (ARACONF)

Kaynak Göster

APA Kaymaz, M. E., & Öztürk, Ö. (2020). ORCA: GO Programlama Dili için ORM/ODM Kütüphanesi. Avrupa Bilim Ve Teknoloji Dergisi310-317. https://doi.org/10.31590/ejosat.araconf40