Saturday, July 20, 2013

Javada haqiqiy 'Hot Swap' Intellij IDEA bilan!

Ko'p dasturchilar har kunlik ishlarini IDE hot-swap'isiz tasavvur qila olishmaydi. Lekin Java HotSwap VM ning imkoniyatlari juda cheklagan, masalan klasga yangi metod yoki global o'zgaruvchilar qo'shilsa yoki metod argumentlarida o'zgartirish, qisqa qilib aytganda strukturaviy o'zgartirishlarni HotSwap avtomatik yuklab bermaydi. Qila oladigan ishi faqat metodni tanasidagi o'zgarishlarnigina sezadi. Baxtimizga, buni yaxshilashning yo'li bor! yangi ochiq kodli proyekt: Dynamic Code Evolution VM,  Java HotSwap™ VM Java klasnarni umuman cheklovsiz 'Runtime' da qayta yuklash imkonyatini beradi. Endi mazzaaaa!!!! IntelliJ IDEA allaqachon bu loyihani testdan o'tkazishdi va u maxsuldorlikni oshirishini ham tasdiqlashdi. Dynamic Code Evolution VM (DCEVM)ni IntelliJ IDEA uchun shu bog'ichdan  new plugin yuklab olishingiz yoki                 Settings -> Plugins-> Browse Repositories -> DCEVM ni tanlab o'rnatishingiz mumkin. O'rnatganingizdan so'ng IDEAni qayta ishga tushuring, Event Log oynasida DCEVM JRE ni yuklab olaymi xo'jayin degan so'rov chiqadi. Xa yuklab deb 'Download'ni bosing.

Qarabsizki, hammasi tayyor. Faqat, 'application'ni yurgizdirishda 'Alternative JRE' dan DCEVM JREni tanlang.
http://www.youtube.com/watch?v=5rYBDJAmxFo


Friday, January 4, 2013

PL/SQL da 'Subprogram'lar va 'Package'lar


Packageni tushunish uchun dastlab 'Subprograms' nima ekanini tushunish kerak. Subprograms - bu ma'lum bir PL/SQL bloklari bo'lib, ularni o'z nomlari mavjud bo'ladi. PL/SQL da ikki xil 'Subprograms' bo'ladi:
Functions(funktsiyalar)
Procedures(protseduralar)
Umumiy holda Protseduralar ma'lum bir amallarni bajaruvchi ketma-ket(lar) desak, funktsiyalar esa ma'lum bir xisob kitoblarni amalga oshirish uchun ishlatiladi.
Subprogrammalar quyidagi qismlardan (bloklar) iborat bo'ladi:
E'lon qilish qismi (declarative part)- o'zgaruvchilar, tiplar, constantlar, exceptionlarni e'lon qilish qismidir.
Yurgizdirish qismi (executable part) - o'zgaruvchilarga qiymat berish ifodalari, yurgizdirishlarni boshqarish (controlling executions) va oracledagi ma'lumotlarni boshqarish qismi.
Istisno holatlarni ushlash qismi (exception-handling part) - bu qismi ixtiyoriy. Masalan, Yurgizish qismida qandaydir sonni 0 ga bo'ldiz bu yerda 'exception-handling' qismi ishlaydi.
Oddiy qilib aytganda subprogram bu yoki funktsiya yoki procedure bo'ladi.
Endi 'Package', u bir nechta saqlanuvchi(stored) subprogrammalarni jamlanmasi. Package ikki qismdan iborat:
Spesifikatsiyasi(specification ) - bu 'public interface' hisoblanadi. Ya'ni bu degani yoziladigan stored proceduralar, functionlar, typelar hammasi boshqa ilovalardan(application) yurgizdirishga ruxsat beradi deganidir.                       'Package sepcification' yangi package yasayotganda yoziladi. Buni boshqacharoq nomalydigan bo'lsak Package API deb ham yuritish mumkin.
  Tanasi (body)  - bu qisimda, specificationda yozilgan hamma stored procedurelar/function/cursorlarning tanasi, ya'ni ammalarni bajarish qismi yoziladi.


Package specification



Bu yerda package nomi - personnel, unda 2ta functsiya bor, ular: get_fullname(id), va get_salary(id), bu yerda id ishchining IDsi.
Body qismida esa har ikkala funktsiyani qay tarzda bajarilishi to'liq ifodalaniladi: