<?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: Itai Klapholtz</title>
    <description>The latest articles on DEV Community by Itai Klapholtz (@itaikla).</description>
    <link>https://dev.to/itaikla</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F51672%2Fc1ab8e59-9377-46a5-8402-825179b63e88.png</url>
      <title>DEV Community: Itai Klapholtz</title>
      <link>https://dev.to/itaikla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itaikla"/>
    <language>en</language>
    <item>
      <title>No More Pages</title>
      <dc:creator>Itai Klapholtz</dc:creator>
      <pubDate>Tue, 20 Aug 2024 04:34:16 +0000</pubDate>
      <link>https://dev.to/itaikla/no-more-pages-5gm7</link>
      <guid>https://dev.to/itaikla/no-more-pages-5gm7</guid>
      <description>&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;In the realm of Next.js, change is the only constant. Our team recently answered the call to evolution, choosing to upgrade from the old &lt;strong&gt;pages&lt;/strong&gt; router to the forward-thinking &lt;strong&gt;app&lt;/strong&gt; router.&lt;/p&gt;

&lt;p&gt;The primary motivation was to support React Server Components (RSC), with the added benefit of keeping the system updated.&lt;/p&gt;

&lt;p&gt;While the new format presents some appealing features, it also comes with certain limitations. I would like to present some of the considerations and insights from that transition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fetch API&lt;/strong&gt;: The Fetch API integration in the App Router was seamless and efficient, simplifying data fetching and handling within our application. Its robust capabilities and straightforward usage were a welcome improvement over previous methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layouts&lt;/strong&gt;: The introduction of layouts in the App Router provided a powerful way to structure our application. This feature allowed for more organised and reusable layout components, significantly improving the maintainability and scalability of our codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Removed &lt;code&gt;next/head&lt;/code&gt;&lt;/strong&gt;: The removal of next/head was a minor but noteworthy change, that streamlined the handling of head elements. This change reduced boilerplate code and made head management more intuitive within the new routing framework. Instead of using HTML elements like &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, you can simply use &lt;a href="https://nextjs.org/docs/app/building-your-application/optimizing/metadata" rel="noopener noreferrer"&gt;Metadata APIs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Organization&lt;/strong&gt;: Some new features enable colocation of files and new way of organising them. For example, one can define &lt;a href="https://nextjs.org/docs/app/building-your-application/routing/colocation#private-folders" rel="noopener noreferrer"&gt;private folders&lt;/a&gt; by using underscore prefixing, or &lt;a href="https://nextjs.org/docs/app/building-your-application/routing/route-groups" rel="noopener noreferrer"&gt;group some sets&lt;/a&gt; of URLs without affecting the path, by using parenthesis. On the other hand, some might argue that this approach could lead to confusion and clutter in the codebase.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;"Change is the essence of life. Be willing to surrender what you are for what you could become." - Unknown&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Bad
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Migration Efforts, Stopped in the Middle&lt;/strong&gt;: The migration process required considerable effort and was halted midway due to unforeseen complications. This disruption affected our development timeline and required us to allocate additional resources to resolve the issues. So in fact, our transition to app router is ongoing, as we currently operate using both routing methods concurrently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Support&lt;/strong&gt;: During the migration, we encountered significant challenges with CSS support, particularly with scoped styles and global styles. The existing CSS setup required substantial reworking to fit the new router’s structure, leading to frustration and delays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confusing Notation of &lt;code&gt;use client&lt;/code&gt; and &lt;code&gt;use server&lt;/code&gt;&lt;/strong&gt;: The introduction of the &lt;code&gt;use client&lt;/code&gt; and &lt;code&gt;use server&lt;/code&gt; directives added a layer of confusion to the migration process. Differentiating between client-side and server-side code became more cumbersome, increasing the likelihood of errors and misconfigurations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js 13 Use Server Components by Default&lt;/strong&gt;: The default use of Server Components in Next.js 13 was both a blessing and a curse. While it aimed to enhance performance, it introduced unexpected behavior in our application, necessitating significant code refactoring and adaptation.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>approuter</category>
      <category>webdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>7 Tips for programmers by memes</title>
      <dc:creator>Itai Klapholtz</dc:creator>
      <pubDate>Wed, 19 Oct 2022 09:51:05 +0000</pubDate>
      <link>https://dev.to/itaikla/7-tips-for-programmers-by-memes-5405</link>
      <guid>https://dev.to/itaikla/7-tips-for-programmers-by-memes-5405</guid>
      <description>&lt;p&gt;What would you recommend to young developers for a better, more productive future career?&lt;/p&gt;

&lt;h2&gt;
  
  
  1 - Reduce notifications and other interruptions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3ksHiTgC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oenloagsbdveppn0d2jz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3ksHiTgC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oenloagsbdveppn0d2jz.jpg" alt="Image description" width="720" height="821"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2 - Focus on the essence and basics, not necessarily the new trends
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gO8xtPNW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zazeiqv3u3zswdav4l5k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gO8xtPNW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zazeiqv3u3zswdav4l5k.jpg" alt="Image description" width="550" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3 - Advice with others
&lt;/h2&gt;

&lt;p&gt;Ask the most experienced developer to review your PRs&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6-KPzHCn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55wnji0sb5ouy1nb5w2i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6-KPzHCn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55wnji0sb5ouy1nb5w2i.jpg" alt="Image description" width="840" height="806"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4 - Be careful while deploying
&lt;/h2&gt;

&lt;p&gt;Some of the skills required for developer are indeed soft skills, like thoroughness and accuracy.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vfw_7WQl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tjdlbizpbnlim5me5o5d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vfw_7WQl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tjdlbizpbnlim5me5o5d.jpg" alt="Image description" width="880" height="767"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5 - Learn git and other basic tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6lgzpRCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vqz3ys8oxv9thrtyopg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6lgzpRCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vqz3ys8oxv9thrtyopg.jpg" alt="Image description" width="880" height="953"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6 - Keep in mind the unexpected, don't be so optimistic on your plans
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4NAR-AlK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lx2gotzsv3qthaow7rrx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4NAR-AlK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lx2gotzsv3qthaow7rrx.jpg" alt="Image description" width="880" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7 - Know what you don't know
&lt;/h2&gt;

&lt;p&gt;There is always something to learn.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g10q2kvh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oiguwl5cm2501kfgzayl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g10q2kvh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oiguwl5cm2501kfgzayl.jpg" alt="Image description" width="752" height="932"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>7 Mistakes Junior Developers Do</title>
      <dc:creator>Itai Klapholtz</dc:creator>
      <pubDate>Wed, 03 Aug 2022 15:30:00 +0000</pubDate>
      <link>https://dev.to/itaikla/7-mistakes-junior-developers-do-g04</link>
      <guid>https://dev.to/itaikla/7-mistakes-junior-developers-do-g04</guid>
      <description>&lt;h2&gt;
  
  
  1 - Don't refresh yourself
&lt;/h2&gt;

&lt;p&gt;We tend to believe that the longer we work, the longer we move forward, and getting our tasks done faster. It may be correct, but not necessarily.&lt;br&gt;
Productivity-time graph is not linear, means we should take break-ups sometimes. The medical recommendation is to walk shortly at least every 1 hour. Most of us don’t do that, but we should.&lt;br&gt;
Because actually, many good ideas and insights happen at random times, like while eating and getting shower.&lt;br&gt;
So have an energy refill. From time to time stand up, get outside, look at the sun (but not directly :) ) and drink water.&lt;/p&gt;

&lt;h2&gt;
  
  
  2 - Not be aware of company business
&lt;/h2&gt;

&lt;p&gt;Some engineers I know don't care about staff unrelated directly to their job. They are programmers, in every sense of the word. Because they basically just translate tasks to running code.&lt;br&gt;
But if you want to step it up, you should get involved of the company business. Talk with employees from another departments like finance, to get another perspective of your company activities. Discuss more often with other engineers to understand more deeply software concepts. Do it for your personal development. &lt;/p&gt;

&lt;h2&gt;
  
  
  3 - Don't sharpen your knife
&lt;/h2&gt;

&lt;p&gt;Make some efforts to make your environment more comfortable, even a little bit.&lt;br&gt;
Maybe you can debug tests with breakpoints instead of console.log? do that. You can write short script which may be helpful? Or even, you can set up your monitor for a more suitable configuration? go for it.&lt;br&gt;
These things may be seem as a waste of time at first sight, but for the long term it’s mostly will save you time, indeed. &lt;br&gt;
Those are just a few examples of ‘tasks’ that you don’t have to do, and as such, many people tend to procrastinate them, because they are not urgent.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 - Prevent yourself from unknown, big tasks
&lt;/h2&gt;

&lt;p&gt;By doing relatively complicated tasks, you can acquire hard skills more easily. Skills like whole-system-thinking, OOP coding, and more.&lt;br&gt;
Besides, it strengthens your self-confidence as well as your believe in yourself.&lt;br&gt;
So don’t be afraid of such tasks, and more than that - be active and move yourself for main position in your team or your R&amp;amp;D department, for getting such responsibilities. &lt;/p&gt;

&lt;h2&gt;
  
  
  5 - Underestimate task complete durations
&lt;/h2&gt;

&lt;p&gt;You sometimes may think that some task should take a little time, and eventually find out it doesn't, because you had unexpected staff. But if you look at that more deeply, you see you always have such factors, like regression bugs and pull-request discussions. These factors are changing, but always exist. As said Heraclitus: ​​“The Only Constant in Life Is Change”. So assuming these staff will probably happen, help you provide more accurate estimation.&lt;br&gt;
Assessing incorrectly might hurt your professional image, if repeating many times. So don’t be afraid of it too much, but take it into account. &lt;/p&gt;

&lt;h2&gt;
  
  
  6 - Don’t learn from others
&lt;/h2&gt;

&lt;p&gt;Ask questions. Ask senior engineers, junior engineers, and ask other people in your company. You can learn something new from anybody.&lt;br&gt;
Shyness and sensitivity are not bad character traits. They could be positive, and contribute to emotional intelligence. But they also may slow down your professional, personal progress. So if you're shy - overcome the fear and consult with your colleagues.&lt;/p&gt;

&lt;h2&gt;
  
  
  7 - Don't appreciate life
&lt;/h2&gt;

&lt;p&gt;Appreciate the beautiful things of life. Maybe it sounds like a non-issue, which has nothing to do with software, but I believe that any person, no matter what his profession, should adopt it. &lt;br&gt;
Life is too short for not being grateful. Call you parents, your friends. take a deep breath, enjoy the little things. Help someone else, because you never know what the future holds. Many people across the globe have no access to water, not to mention computers and internet like us. But you do. So be grateful for that, be grateful for everything you got. &lt;/p&gt;

</description>
      <category>tips</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>What is the connection between coke and personal development?</title>
      <dc:creator>Itai Klapholtz</dc:creator>
      <pubDate>Wed, 22 Jun 2022 22:24:12 +0000</pubDate>
      <link>https://dev.to/itaikla/what-is-the-connection-between-coke-and-personal-development-a3l</link>
      <guid>https://dev.to/itaikla/what-is-the-connection-between-coke-and-personal-development-a3l</guid>
      <description>&lt;p&gt;Today I shopped some soda cans, part of them were cold, the others not. I put them in the fridge, and got one - but I didn't know which ones are really cold - and which were just near to the cold drinks.&lt;br&gt;
And then I realized, you can be contributed by good people with some significant knowledge or soft skills. You can be better by surround yourself with quality people, and learn from them. But for long-term change, it might not work - you have to do internal change - not just environmental one - then you will be really 'cold', and not just temporarily.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Push unrelated changes</title>
      <dc:creator>Itai Klapholtz</dc:creator>
      <pubDate>Fri, 08 Apr 2022 15:06:42 +0000</pubDate>
      <link>https://dev.to/itaikla/push-unrelated-changes-k6a</link>
      <guid>https://dev.to/itaikla/push-unrelated-changes-k6a</guid>
      <description>&lt;p&gt;You're working on dedicated branch for specific task, and you're facing a typo, commented code, or more serious issue like performance or incorrect logic, which has nothing with the task you're working on. &lt;br&gt;
Would you do these fixes on the same branch? or for VCS reasons, would you open a new branch and commit changes there? &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
