<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Dreamwidth Development Training</title>
  <link>https://dw-dev-training.dreamwidth.org/</link>
  <description>Dreamwidth Development Training - Dreamwidth Studios</description>
  <lastBuildDate>Tue, 01 May 2012 22:16:31 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>dw_dev_training</lj:journal>
  <lj:journaltype>community</lj:journaltype>
  <image>
    <url>https://v2.dreamwidth.org/92798/30813</url>
    <title>Dreamwidth Development Training</title>
    <link>https://dw-dev-training.dreamwidth.org/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>https://dw-dev-training.dreamwidth.org/34384.html</guid>
  <pubDate>Tue, 01 May 2012 22:16:31 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 3) - using classes</title>
  <link>https://dw-dev-training.dreamwidth.org/34384.html</link>
  <description>Posted by: &lt;span lj:user=&apos;sophie&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/&apos;&gt;&lt;b&gt;sophie&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It&apos;s been a while since I posted anything in &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/tag/object-oriented+programming&quot;&gt;this series of entries&lt;/a&gt;, and I apologise for that! Today, though, I&apos;ll be explaining how to actually use classes in Perl and the Dreamwidth code and constructing new objects.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://dw-dev-training.dreamwidth.org/34384.html#cutid1&quot;&gt;How do you use classes?&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That&apos;s a lot to take in, so I&apos;ll leave off for now! I hope I&apos;ve explained things well, but I&apos;m sure that there are bits that are going to be incomprehensible. If you need me to explain anything further, please ask in the comments - I&apos;ll be happy to try to explain it.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=34384&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://dw-dev-training.dreamwidth.org/34384.html</comments>
  <category>object-oriented programming</category>
  <category>perl</category>
  <category>beginner guide</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://dw-dev-training.dreamwidth.org/32468.html</guid>
  <pubDate>Fri, 17 Feb 2012 23:27:28 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 2)</title>
  <link>https://dw-dev-training.dreamwidth.org/32468.html</link>
  <description>Posted by: &lt;span lj:user=&apos;sophie&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/&apos;&gt;&lt;b&gt;sophie&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Welcome to the second part of the series on object-oriented programming - or OO - as it applies to the Dreamwidth codebase. :)&lt;br /&gt;&lt;br /&gt;If you haven&apos;t already read the &lt;a href=&quot;http://dw-dev-training.dreamwidth.org/31843.html&quot;&gt;first part&lt;/a&gt;, you&apos;ll want to do that before reading this part. I also realise that I never got around to explaining what &apos;methods&apos; are in the first post, so I&apos;m going to do that right now before delving into the main part of this post:&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://dw-dev-training.dreamwidth.org/32468.html#cutid1&quot;&gt;What are methods?&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As with the last post, if you have any questions on this, feel free to let me know in the comments!&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;So, with that explanation of methods out of the way, it&apos;s time to move onto our next topic - how it applies to the DW codebase.&lt;br /&gt;&lt;br /&gt;I&apos;m going to do this as a few posts, each dealing with their own topic, because I&apos;ve got a fair amount to say about them. I&apos;m still not entirely sure how many there&apos;ll be, but I&apos;m writing them one at a time so there may be some time (a few days to a week) between each one.&lt;br /&gt;&lt;br /&gt;A couple of things to note before I begin:&lt;ul&gt;&lt;li&gt;This post may require some basic knowledge of Perl and/or programming in general. Not much, I promise! (Things such as what a &apos;string&apos; is, etc.) But all the same, if anybody finds themselves confused by anything I write, feel free to ask for clarification in the comments. I won&apos;t bite!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Secondly, if you&apos;re used to OO from another language, you&apos;ll find some things about Perl&apos;s implementation of OO to be strange and baffling. That&apos;s because Perl wasn&apos;t actually designed with OO in mind; OO support came later, and to be honest, it shows. Still, it&apos;s what we use, so I hope I can at least help with understanding it.&lt;sup&gt;&lt;a href=&quot;#dw-oo2-perl6&quot;&gt;(**)&lt;/a&gt;&lt;/sup&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;small&gt;&lt;sup&gt;(**)&lt;/sup&gt; There &lt;em&gt;is&lt;/em&gt; a version of Perl in the works which does a much better job of not only OO but a lot of other things - &lt;a href=&quot;http://dev.perl.org/perl6/&quot;&gt;Perl 6&lt;/a&gt; - but at the cost of revamping a lot of the language such that you probably wouldn&apos;t be able to use it without spending some time making sure your code conformed to it. For this series, therefore, I&apos;ll be concentrating on Perl 5, which is what most Perl developers - including DW and LJ - use.&lt;/small&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;With all that said, let&apos;s move onto our first topic!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___2&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://dw-dev-training.dreamwidth.org/32468.html#cutid2&quot;&gt;What is an &apos;object&apos; in Perl?&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___2&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;That&apos;s about it for this post. There&apos;s a lot of stuff here so feel free to ask questions if there&apos;s anything you don&apos;t understand! My next post will probably talk about how you can create and use an object, as well as some example of existing classes in the codebase.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=32468&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://dw-dev-training.dreamwidth.org/32468.html</comments>
  <category>object-oriented programming</category>
  <category>perl</category>
  <category>beginner guide</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>18</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://dw-dev-training.dreamwidth.org/31843.html</guid>
  <pubDate>Mon, 13 Feb 2012 21:11:48 GMT</pubDate>
  <title>DW object-oriented programming explained (Part 1)</title>
  <link>https://dw-dev-training.dreamwidth.org/31843.html</link>
  <description>Posted by: &lt;span lj:user=&apos;sophie&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://sophie.dreamwidth.org/&apos;&gt;&lt;b&gt;sophie&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Dreamwidth codebase uses object-oriented programming a lot, or &quot;OO&quot; as it&apos;s known. But what exactly &lt;em&gt;is&lt;/em&gt; OO? In this post I&apos;m going to explain the concepts of OO. I plan this to be the first in a series; in later posts I&apos;ll explain how OO programming relates to the DW codebase, some gotchas that might arise, and other such things.&lt;br /&gt;&lt;br /&gt;For now though, an introduction to the basic concepts of OO!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://dw-dev-training.dreamwidth.org/31843.html#cutid1&quot;&gt;So, what is OO exactly?&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And that, in a nutshell, is what OO is all about. In the next post on this subject - which may be in a few days or a week, I don&apos;t know yet - I&apos;ll be talking about how this applies to the Dreamwidth codebase. :)&lt;br /&gt;&lt;br /&gt;If anybody has any questions so far about what I&apos;ve said in this post, please feel free to comment!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=dw_dev_training&amp;ditemid=31843&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://dw-dev-training.dreamwidth.org/31843.html</comments>
  <category>object-oriented programming</category>
  <category>beginner guide</category>
  <lj:security>public</lj:security>
  <lj:poster>sophie</lj:poster>
  <lj:reply-count>8</lj:reply-count>
</item>
</channel>
</rss>
