<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aybike</title>
    <description>The latest articles on DEV Community by Aybike (@aybikedalbul).</description>
    <link>https://dev.to/aybikedalbul</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1065506%2Fb3767ea5-86ff-43c8-9f82-248db0e868d6.png</url>
      <title>DEV Community: Aybike</title>
      <link>https://dev.to/aybikedalbul</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aybikedalbul"/>
    <language>en</language>
    <item>
      <title>🚀 Node.js: Hızlı, Esnek ve Ölçeklenebilir Web Geliştirme Deneyimi!</title>
      <dc:creator>Aybike</dc:creator>
      <pubDate>Fri, 28 Apr 2023 00:29:54 +0000</pubDate>
      <link>https://dev.to/aybikedalbul/nodejs-hizli-esnek-ve-olceklenebilir-web-gelistirme-deneyimi-12oj</link>
      <guid>https://dev.to/aybikedalbul/nodejs-hizli-esnek-ve-olceklenebilir-web-gelistirme-deneyimi-12oj</guid>
      <description>&lt;h2&gt;
  
  
  🤔 Web Uygulamalarında Performansın Sırrı?
&lt;/h2&gt;




&lt;p&gt;💡 Diyelim ki chat uygulaması veya sosyal medya uygulamaları gibi &lt;em&gt;gerçek zamanlı&lt;/em&gt; bir uygulama yapmak istiyoruz. Bu uygulamalar yüksek performans gerektirir. Non-blocking ve event-driven gibi özelliklere sahip olması bu tip uygulamalar için Node.js’in tercih edilmesini sağlar. Bu özellikleri açıklamadan önce Node.js'in derinlerine inelim:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yhnsjrDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://colorlib.com/wp-content/uploads/sites/2/nodejs-frameworks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yhnsjrDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://colorlib.com/wp-content/uploads/sites/2/nodejs-frameworks.png" alt="Link" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 Biraz eskilere gidelim mi? ..&lt;/p&gt;

&lt;p&gt;Web teknolojileri eskiden 3 kullanım sunardı; HTML, CSS ve JavaScript.&lt;/p&gt;

&lt;p&gt;Fakat 2009 da Node.js ‘in ilk sunumu yapıldığında herkesi heyecanlandıran bir şey vardı; artık JavaScript sadece front-end değil  back-end kısmında da kullanılabilecekti. Yani Javascript artık tarayıcının sınırlamaları arasında kalmayacaktı.&lt;/p&gt;

&lt;p&gt;Örneğin artık dosyalarla direkt iletişime geçilebilir, kendi sunucumuzu oluşturabilir ve veri tabanlarıyla direkt iletişime geçebiliriz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a336PyG9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://gloify.com/wp-content/uploads/2021/06/shopify-2-1210x617.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a336PyG9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://gloify.com/wp-content/uploads/2021/06/shopify-2-1210x617.png" alt="Link" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 Event-Driven Yapısı&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Node.js event-driven yani olay-odaklı çalışır. Ne demek istiyorum?&lt;/p&gt;

&lt;p&gt;Burada ‘olay’ dan kastım; bir web sayfasının kullanıcı tarafından yüklenmesi olabilir, dosya okuma işlemleri olabilir, kullanıcının kayıt olma işlemini tamamlaması olabilir.. İşte bu gibi olayları izleyip, bunlara uygun yanıt vermesine event-driven diyoruz.&lt;/p&gt;

&lt;p&gt;Callback fonksiyonları, promise, async/await yapılarını kullanılarak gerçekleştirilebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 Non-Blocking Özellik&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu özelliği anlamak için Node.js bir sihirbaz gibi düşünülebilir 🧙. Bir işlemi tamamlamadan diğer işlemlere devam edebilir.&lt;/p&gt;

&lt;p&gt;Bu sayede, Node.js ile geliştirilen uygulamaların daha hızlı ve ölçeklenebilir olması sağlanır.&lt;/p&gt;

&lt;p&gt;Bu özelliği aşağıdaki &lt;em&gt;Madenci Benzetmesi&lt;/em&gt; ile daha iyi anlayabilirsiniz..&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;📝 Ölçeklenebilir derken şu kastediliyor: Uygulamalarınızın kullanıcı sayısı arttıkça, sunucu kapasitenizi de arttırarak daha fazla trafik ve isteği yönetebilirsiniz.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;👉 Asenkron Yapısı&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Asenkron yapısı sayesinde birden fazla işlemi aynı anda yapabilir!&lt;/p&gt;

&lt;p&gt;Böylece dosya okuma, veritabanı sorguları ve HTTP istekleri gibi işlemler daha hızlı ve verimli hale gelir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔨 Madenci Benzetmesi:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Elmas bulmak için mağarada harıl harıl çalışan bir madenci düşünelim. Madenci, elmas arıyor ve bulduğu elmasları torbasına koyuyor olsun. Elmas bulduğu zaman, torbasındaki elmasların sayısını arttırmak için birkaç saniye beklemesi gereksin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GDKvmEz9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn.dribbble.com/users/620403/screenshots/6027568/media/d04cb0c18edc2f6a08f2718ed76aa44e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GDKvmEz9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn.dribbble.com/users/620403/screenshots/6027568/media/d04cb0c18edc2f6a08f2718ed76aa44e.gif" alt="Link" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Şimdi gelelim asıl noktaya, normal bir programla dili kullanıldığında, madenci elmas bulduğunda beklemesi gereken süre boyunca başka iş yapamaz. Fakat Node.js kullanıldığında, madenci elmas bulduğunda elmasları torbasına koymak için beklemesi gerekmez, bu bekleme işlemi arka planda devam eder ve madenci o sırada başka işlerine devam edebilir. &lt;br&gt;
Mesela fenerini kontrol edebilir, yönünü değiştirebilir ya da başka işlerini yapabilir.&lt;/p&gt;

&lt;p&gt;💎💎&lt;/p&gt;

&lt;p&gt;İşte Node.js non-blocking özelliği sayesinde, madenci bir sonraki işlemi yapmak için elmas bulma süresinin dolmasını beklemez, diğer işlerini yapmaya devam eder. Bu süre arka planda gerçekleşip, süresini doldurur. Bu sayede madenci işlerini daha verimli bir şekilde yapmış olur.  💪 💪&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎉 Node.js ile yazılan &lt;em&gt;popüler&lt;/em&gt; uygulamalar :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;İşte Node.js kullanarak yazılmış meşhur teknolojilerden bazıları:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0rsmITxG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://r.resimlink.com/ArbNC2wzk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0rsmITxG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://r.resimlink.com/ArbNC2wzk6.png" alt="Link" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Okuduğunuz için teşekkür ederim.. 🙏 😊&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>What is the OSI Reference Model?</title>
      <dc:creator>Aybike</dc:creator>
      <pubDate>Tue, 18 Apr 2023 15:08:00 +0000</pubDate>
      <link>https://dev.to/aybikedalbul/what-is-the-osi-reference-model-4o68</link>
      <guid>https://dev.to/aybikedalbul/what-is-the-osi-reference-model-4o68</guid>
      <description>&lt;h2&gt;
  
  
  Open System Interconnection - OSI
&lt;/h2&gt;




&lt;p&gt;The OSI Model is a reference model used to standardize the communication processes of computer networks.&lt;/p&gt;

&lt;p&gt;With the emergence of the concept of networking, many protocols were developed, but these protocols were developed by each manufacturer according to their own products, rather than adhering to a specific standard. This eventually led to communication issues between hardware produced by different manufacturers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For instance, in the 1970s, IBM developed protocols called System Network Architecture (SNA) for its own hardware. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Similarly, Digital Equipment Corporation also created protocols named DECNet for its own products. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, the lack of a common point of reference due to different protocols posed a significant problem for communication between different hardware during that time.&lt;/p&gt;

&lt;p&gt;In order to address this issue, the OSI reference model was introduced by ISO (International Organization for Standardization) in 1984, which provided a standardized framework for communication independent of hardware and underlying network infrastructure.&lt;/p&gt;

&lt;p&gt;When data is being transmitted between two network devices based on the OSI reference model, it starts from the top layer and progresses downwards through the lower layers. At each layer, specific information pertaining to that layer is added. This process is called &lt;em&gt;Encapsulation&lt;/em&gt;. When the data reaches the physical layer, it gains access to the physical layer of the other device. At this point, the reverse process occurs, where the information added at each layer is extracted as the data progresses from the lowest layer to the top layer. This process is called &lt;em&gt;De-encapsulation&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BODKE69G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Layers.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BODKE69G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Layers.png" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Layers.png" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The OSI model divides the data communication processes of computer networks into 7 layers:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1- Physical Layer :&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The Physical Layer enables direct transmission of data bits (1s and 0s) between devices in physical form, such as electrical signals, radio waves, and optical signals. It also detects and corrects transmission errors at the Physical Layer.&lt;/p&gt;

&lt;p&gt;For example, in electrical medium, signals are expressed in voltage levels. The Physical Layer performs Line Coding process to convert data bits into appropriate voltage levels, generating the signal.&lt;/p&gt;

&lt;p&gt;Similarly, in optical transmission media, signals are represented by light waves. Again, Line Coding process converts data bits into appropriate light signals, generating the signal at this layer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1xzsA0Ds--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Physical-Layer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1xzsA0Ds--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Physical-Layer.png" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Physical-Layer.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2- Data Link Layer:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data packets are divided into frames by the Data Link Layer and each frame is transmitted to the destination device in the network. Frames are numbered and organized to ensure the correct sequencing of data for the receiving device. The Data Link Layer enables direct transmission between devices using the physical address (MAC address) of the destination device.&lt;/p&gt;

&lt;p&gt;Furthermore, the Data Link Layer detects and, if necessary, corrects errors in data packets using error detection methods such as special algorithms or cyclic redundancy checks (CRC).&lt;/p&gt;

&lt;p&gt;In summary, the Data Link Layer is responsible for ensuring the security and correct sequencing of data during transmission, making it a crucial layer for reliable data communication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uvvUijYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Data-Link-Layer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uvvUijYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Data-Link-Layer.png" alt="Untitled" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3- Network Layer:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The Network Layer determines how data packets are transmitted from source to destination. Data packets are directed by the Network Layer from the source device to the destination device. In other words, the Network Layer enables routing of data packets between multiple network segments.&lt;/p&gt;

&lt;p&gt;This layer works with protocols such as IP (Internet Protocol) to select the path for data packets from source to destination and make routing decisions.&lt;/p&gt;

&lt;p&gt;In summary, the Network Layer manages the routing, addressing, communication between different networks, traffic management, and accessibility of the destination device for data packets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L8WlMZkw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/Address-Resolution-Protocol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L8WlMZkw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/Address-Resolution-Protocol.png" alt="https://realpars.com/wp-content/uploads/2019/02/Address-Resolution-Protocol.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4- Transport Layer :&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The Transport Layer, as the name implies, is responsible for the task of data transfer. This layer ensures reliable and accurate data transmission between the source application layer and the destination application layer. It manages data packets, controls data flow, and establishes and terminates communication connections.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This layer uses protocols to manage data flow and ensure reliable communication between devices in a network, from source to destination. Examples of commonly used protocols include TCP and UDP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;! Each protocol is chosen based on the requirements of the &lt;br&gt;
  application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rrZDO8cx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Transport-Layer.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rrZDO8cx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Transport-Layer.gif" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Transport-Layer.gif" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5- Session Layer:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The Session Layer provides session management between devices in a network. By establishing and terminating sessions between two devices, it regulates communication. The Session Layer ensures a reliable and consistent session during data exchange by performing tasks such as session initiation, management, and termination in the communication process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ydAeNKT6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Session-Layer.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ydAeNKT6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Session-Layer.gif" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Session-Layer.gif" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6- Presentation Layer:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The layer where operations such as encryption and compression are performed is the Presentation Layer. The purpose of this layer, which is the 6th layer, is to convert data coming from the application layer (7th layer) into a readable format. This way, the data is transmitted in a format that the target device can understand. The operations performed in this layer also ensure data security.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9Dx8QRJB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Presentation-Layer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Dx8QRJB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Presentation-Layer.png" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Presentation-Layer.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7- Application Layer:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The Presentation Layer provides an interface for data communication of user applications and manages the operation of application-level protocols. Applications such as web browsers, email clients, Domain Name System (DNS), and File Transfer Protocol (FTP) operate at this layer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ACeYmdBK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Application-Layer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ACeYmdBK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://realpars.com/wp-content/uploads/2019/02/OSI-Application-Layer.png" alt="https://realpars.com/wp-content/uploads/2019/02/OSI-Application-Layer.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading..&lt;/p&gt;

</description>
      <category>network</category>
      <category>security</category>
      <category>osimodel</category>
    </item>
  </channel>
</rss>
