<?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>Forem: Jorge</title>
    <description>The latest articles on Forem by Jorge (@codingjorge).</description>
    <link>https://forem.com/codingjorge</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%2F595841%2F656d14a8-5caf-4b30-898e-d6b840dccbb3.png</url>
      <title>Forem: Jorge</title>
      <link>https://forem.com/codingjorge</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/codingjorge"/>
    <language>en</language>
    <item>
      <title>Principles and Philosophies Part 1</title>
      <dc:creator>Jorge</dc:creator>
      <pubDate>Sun, 14 Mar 2021 18:28:44 +0000</pubDate>
      <link>https://forem.com/codingjorge/principles-and-philosophies-part-1-39g</link>
      <guid>https://forem.com/codingjorge/principles-and-philosophies-part-1-39g</guid>
      <description>&lt;p&gt;I started my career about 9 years ago, the sole Web UI automation developer, using Selenium (Java), automating tests for insurance forms of a homeowners insurance company. I lucked out in that I was given the time to read, think, and experiment to come up with principles and philosophies that have held true to this day.&lt;/p&gt;

&lt;h1&gt;
  
  
  EVERYTHING IS A TRADEOFF/BEST PRACTICES CAN BE RELATIVE
&lt;/h1&gt;

&lt;p&gt;Understanding what your tradeoffs are will go a long way to knowing how/why you're using the right tool for the job as well as identifying when a better tool can be used. Also understanding when to use Best Practices and &lt;strong&gt;the reason&lt;/strong&gt; for when you should not means you truly understand what you're trying to solve with your programming. &lt;br&gt;
I believe these points are extremely important to being a good problem solver/developer. &lt;/p&gt;

&lt;h1&gt;
  
  
  Tests should be &lt;strong&gt;READABLE&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;The easier it is to read a test, the faster and easier it is to understand what a test is doing, if you ever need to. This is helped by many things, but &lt;strong&gt;Encapsulation&lt;/strong&gt; in particular helps with hiding technical details behind easy to understand names. Behavior Driven Development (BDD), in my opinion, seems to be the current epitome of creating readable tests, but there are tradeoffs and stipulations that I don't think many really take into consideration, and it ends up being more trouble than it's worth. In any case, the concept of Page Objects&lt;a href="https://martinfowler.com/bliki/PageObject.html"&gt;[1]&lt;/a&gt;&lt;a href="https://www.selenium.dev/documentation/en/guidelines_and_recommendations/page_object_models/"&gt;[2]&lt;/a&gt; is encapsulation for UI components and their functionality that can be tremendously expanded on. This and more is used in order to write &lt;strong&gt;readable&lt;/strong&gt; tests, the benefits are immediate and can be read for themselves.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tests should be &lt;strong&gt;EFFICIENT&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;From a Selenium/Appium perspective, this means avoid using sleeps (without an explicit and detailed explanation for why you need to) and Implicit Waits, which applies an unecessary blanket wait for elements to appear, unless you're dealing with a strictly static website. Referring to the my first principle, there are certainly times when you would use these things, but they're usually used as a way to slow down automation indiscriminately and without understanding, which makes your tests very inefficient.&lt;/p&gt;

&lt;p&gt;I hope to make this a series of posts to finally write these thoughts down. &lt;/p&gt;

</description>
      <category>programming</category>
      <category>testing</category>
    </item>
    <item>
      <title>Thoughts on the first post</title>
      <dc:creator>Jorge</dc:creator>
      <pubDate>Sun, 14 Mar 2021 04:39:47 +0000</pubDate>
      <link>https://forem.com/codingjorge/thoughts-on-the-first-post-2ad8</link>
      <guid>https://forem.com/codingjorge/thoughts-on-the-first-post-2ad8</guid>
      <description>&lt;p&gt;I do like how simple this editor is, but there are a few things I wish it had:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Tag selector&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I like that there is a curated choice of tags to use for most relevant and adopted topics, but like right now, sometimes I don't know what would apply, and even if nothing did, at least I know that it's missing and could potentially do something about it. As it stands I just  ¯\&lt;em&gt;(ツ)&lt;/em&gt;/¯&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Code editor&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It would be nice to have an actual code editor. I really like the way it looks once posted, but I guess I'll stick to using an IDE or editor for code and then just copy and pasting it into the post.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Code copying&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;While I really like how code looks once posted, I really wish they had a way to click a button and copy the code. That kind of functionality should be default whenever blogging about code, since it makes it trivial to be able to get it and try it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'll definitely try to keep it up though, I'm remembering how I used to really be into writing for my LiveJournal way back in high school haha, so hopefully I still got it!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hello World!</title>
      <dc:creator>Jorge</dc:creator>
      <pubDate>Sun, 14 Mar 2021 04:22:09 +0000</pubDate>
      <link>https://forem.com/codingjorge/hello-world-e0k</link>
      <guid>https://forem.com/codingjorge/hello-world-e0k</guid>
      <description>&lt;p&gt;Hi there! I've been wanting to blog for a while and I'm hoping this is a good place for a simple and easy platform to use for writing a personal coding blog.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorld&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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