یاداشت های کوتاه یک برنامه نویس

طبقه بندی موضوعی

۷ مطلب با کلمه‌ی کلیدی «جاوا» ثبت شده است

۰۲
بهمن

من عاشق جاوا هستم

چون کار ها رو خیلی راحت کرده مثلا این تصویر رو ببینید:

برای یک کاری لازمش داشتم ، حوصله اش را نداشتم که وقت بگذارم و در ابزاری مثل فتوشاپ یا گیمپ یه همچین چیزی رو با دقت یک پیکسل رسم کنم.

فکرش رو کنید باید از خطوط راهنما استفاده میکردم و یک تصویر 1000 در 50 پیکسلی که در صفحه نمایش من با توجه به رزولوشن ، 370 واحد از خط کش فتوشاپ بود ، به بیست قسمت مساوی تقسیم کنم بعد از 100 تا منهای 100 درجه بندی کنم چقدر وقت میبرد.

میانبر زدم

یک نمونه ی عمودی اش را به گرافیست گروه سپردم تا رسم اش کند اما اون طور که میخواستم نشد. پس میانبر زدم  و کلا سه دقیقه وقت برد از نوشتن کد تا خروجی تصویر. به این دلیله که من عاشق جاوا هستم.

package paint;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

/**
 *
 * @author yn
 */
public class paint{

    static BufferedImage buffImage = null;
    static Graphics2D g2;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        init();
        draw_line();

        write();

    }

    public static void init() {
        buffImage = new BufferedImage(1000, 50, BufferedImage.TYPE_INT_ARGB);
        g2 = buffImage.createGraphics();
    }

    public static void draw_line() {
        g2.setStroke(new BasicStroke(2));
        g2.setColor(Color.green);
        g2.drawLine(0, 25, 1000, 25);

        int c = 100;
        for (int i = 0; i <= 1000; i += 50) {
            g2.drawLine(i, 30, i, 20);

            if (i == 0) {
                g2.drawString(c + "", i + 2, 15);
            } else if (i == 1000) {
                g2.drawString(c + "", i - 25, 15);
            } else {
                g2.drawString(c + "", i - 5, 15);
            }

            c -= 10;
        }
    }


    public static void write() {
        try {
            File outputfile = new File("saved.png");
            ImageIO.write(buffImage, "png", outputfile);

        } catch (Exception e) {
            System.out.println(e);
        }
    }

}

  • younes RayanFar
۲۵
بهمن

کانال تلگرام آموزش جاوا (تمرین و درسنامه) 

پس از عضویت پیام ها را از ابتدا دنبال کنید.

  • younes RayanFar
۰۳
مهر

نکته شماره 2 : دسترسی به کلاس ها و متد ها و متغییر ها رو محدود کنید.

بهتره به طور پیش فرض تمام موارد فوق مثل کلاس ها متد ها و متغییر ها رو خصوصی در نظر بگیرید مگر اینکه دلیل قانع کننده ای برای سطح دسترسی بیشتر مثلا محافظت شده پکیج یا عمومی داشته باشید. توصیه میشه حتما دلیل این کار رو در مستندات ذکر کنید.

  • younes RayanFar
۰۳
مهر

نکته اول : سعی کنید کلاس هاتون وابسته به مقدار دهی اولیه نباشند.

شاید خیلی از برنامه نویس ها به این کار عادت داشته باشند یا حتی توصیه هم شده باشند اما خب نظر اکثریت همیشه درست نیست.

راه های زیادی برای این کار وجود داره مثلا میتونید:

  • بهتره تمام متغییر ها به صورت خصوصی باشند.(اگر نیازه از بیرون بهشون دسترسی داشته باشند با متدهای set و get این کار انجام بدهید ، این باعث میشه تا متغییر هایی که هنوز مقدار دهی اولیه نشده اند از دستکاری پیش بینی نشده محافظت شوند).
  • برای هر نمونه از کلاس یک متغییر بولین مشخص کننده مقدار دهی اولیه شده یا نشده در نظر بگیرید.
  • وضعیت متغییر بولین یاد شده رو در سازنده و قبل عبارت return تغییر بدهید.
  • برای هر متد غیر سازنده دیگه ای ابتدا چک کنید آیا متغییر بولین مذکور true است یا خیر اگر true بود اجرا شود وگرنه استثنایی بی اندازد، فراموش نکنید این را باید قبل از هر کار دیگه ای در آن متد انجام بدهید.

اگر درک درستی از برنامه نویسی شئ گرا داشته باشید مطمئنا متوجه شده اید که یک خرابکار چطور میتونه از این طریق سوء استفاده کند.

تو پست بعدی در این باره و متد های استاتیک خواهم نوشت.

  • younes RayanFar
۲۰
مرداد

apache ant ابزار خط فرمانی است  که به زبان جاوا نوشته شده است. که وظیفه ی ساخت برنامه های جاوا را بر عهده دارد. در واقع ant کار های مربوط به کامپایل ، اسمبل و تست و اجرای برنامه های جاوا بر عهده میگیرد.

بهتره آخرین نسخه را از سایت آپاچی دریافت و unzip کنید.

برای استفاده از آن باید مسیر برنامه را به متغییر محیطی path در ویندوز اضافه کنید. 

شاید در آینده مطالب بیشتری در این مورد نوشتم.

  • younes RayanFar
۱۴
مرداد

بعضی وقت ها نیاز هست برنامه restart بشه مثلا وقتی که آپدیتی را از اینترنت دریافت میکنه و یا وقتی که یک پلاگین جدید نصب میکنید(البته اگر از OSGI استفاده کنید نیازی به restart نیست) به هر حال هیچ راه ساده ای نیست مگر از دستورات خط فرمان استفاده کنید که در جاوا امکانات خوبی برای این کار وجود داره.

  • younes RayanFar
۲۶
تیر

برای کار با فایل در جاوا از یک نمونه از کلاس File استفاده میشود. میتونیم توش بنویسیم و ازش بخونیم اما تا وقتی متد createNewFile را فراخوانی نکنیم هیچ فایلی واقع رو دیسک سخت ایجاد نمیشه! در واقع هر کاری کردیم روی رم بوده.

  • younes RayanFar