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

معرفی شیوه های نوین برنامه نویسی

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

معرفی شیوه های نوین برنامه نویسی

در این وبگاه سعی می شود که منابع و مقالات جدید در دسترس پارسی زبانان قرار گیرد.
که شامل موضوعات زیر می شود:
,scala,java Nio, non-blocking, event-driven

۲ مطلب در فروردين ۱۳۹۳ ثبت شده است

یکی از سایت های جالبی که بهش سرمیزنم سایت usesthis هست که نرد های ایرانی سعم می کنن دانسته ها شخصی شون رو به اشتراک بزارن

سایت کاریا  و خوش فکری هم که دیگه بماند.

 

۲ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۳ ، ۱۶:۴۷
irgeek

چند وقت پیش  بعد از انتشار جاوا 8 بود که امید با لامبادا حال کرده بود و درموردش تویت می کرد. بگذریم.


vertx   یک سکوی توسعه عالی هست که مزایای همچون چند زبانی و ... به ارمغان میاره که در موردش می توانید به سایتش مراجعه کنید.

یک مثال ساده راه گشا خواهد بود.

public class SimpleFormUploadServer extends Verticle {
  public void start() {
    vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
      public void handle(final HttpServerRequest req) {
        if (req.uri().equals("/")) {
          // Serve the index page
          req.response().sendFile("simpleformupload/index.html");
        } else if (req.uri().startsWith("/form")) {
          req.expectMultiPart(true);
          req.uploadHandler(new Handler<HttpServerFileUpload>() {
            @Override
            public void handle(final HttpServerFileUpload upload) {
              upload.exceptionHandler(new Handler<Throwable>() {
                @Override
                public void handle(Throwable event) {
                  req.response().end("Upload failed");
                }
              });
              upload.endHandler(new Handler<Void>() {
                @Override
                public void handle(Void event) {
                  req.response().end("Upload successful, you should see the file in the server directory");
                }
              });
              upload.streamToFileSystem(upload.filename());
            }
          });
        } else {
          req.response().setStatusCode(404);
          req.response().end();
        }
      }
    }).listen(8080);
  }
}

 

 حال اگر همین مثال را با جاوا8 بنویسیم به این شکل خواهد بود.

public class SimpleFormUploadServer extends Verticle {
  public void start() {
    vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
      public void handle(final HttpServerRequest req) {
        if (req.uri().equals("/")) {
          // Serve the index page
          req.response().sendFile("simpleformupload/index.html");
        } else if (req.uri().startsWith("/form")) {
          req.expectMultiPart(true);
          req.uploadHandler( upload)-> {
              upload.exceptionHandler((Handler)( event) ->{
                  req.response().end("Upload failed");
                }
              });
              upload.endHandler((Handler)( event) ->{
                  req.response().end("Upload successful, you should see the file in the server directory");
                }
              });
              upload.streamToFileSystem(upload.filename());
            }
          });
        } else {
          req.response().setStatusCode(404);
          req.response().end();
        }
      }
    }).listen(8080);
  }
}

 

 

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

vertx  که با جاوا 8  دلپذیر تر شد.

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۳ ، ۱۶:۳۳
irgeek