Programming

Byadministrator

WP Broken Link Status Checker for WordPress

We have all had to deal with broken links in the past. Sites that you link to can move or change their structure, leaving you with broken links. With WP Link Status, you can scan your site to find broken and “nofollow” links. You can set up scans to monitor links and images, track malformed […]

The post WP Broken Link Status Checker for WordPress appeared first on WP Solver.

Byadministrator

Episode 60 – Software Architecture – The Domain in Domain Driven Design

We continue our Domain Driven Design conversation this week as Allen is indecisive, Michael decides for him, and Joe can’t handle the night life.

Using your podcast player to read these notes? Head to http://www.codingblocks.net/episode60 to see the full show notes in all of their glory.

Do You Even Slack?

If you don’t, you should. Head over to http://www.codingblocks.net/slack to be a part of the conversation.

Survey

This week we want to know: What is your headphone style of choice while coding?

What is your headphone style of choice while coding?

     

    News

    • Lots of love and thanks to everyone that left a review. We greatly appreciate it.
      • iTunes reviews: ELiktman?ELichtman?’sThat it?, Andreas Risberg, ChrisB777, martinrocket, Hegele, Ashy Lary, TSouza1985, Ilcawthorne, Basicallysteve
      • Stitcher reviews: We’ll never know since Stitcher was down at the time of this recording. However, we will be sure to include those in the next episode.
    • Allen can’t decide which laptop to buy. So he bought both.
      • HP Spectre x360 (available at Amazon)
      • Lenova Yoga (available at Amazon)
      • Oh how the mighty have fallen, MacBook Pro (available at Amazon)
    • Microsoft has the largest Git repo on the planet.
    • Why Google Stores Billions of Lines of Code in a Single Repository. (watch via YouTube, read the article at ACM)
    • Should we have a National Code Forgiveness Day?
    • Quick and Dirty.
      • Should you do it?
      • Is it wrong?

    Coding Blocks Gear

    You need some Coding Blocks stickers in your life. And maybe a shirt. Check out http://www.codingblocks.net/swag to get yours.

    The Domain in Domain Driven Design

    Domain Layer

    • Try not to use anemic domain models, which focus on state rather than behavior
    • Do use rich domain models – these focus on behavior, not just the state
    • Should represent concepts of the business
    • Should contain information about the business situation
    • Contains business rules
    • Technical details of storing these things are delegated to the infrasturcture layer….NOT HERE
    • Behaviors are king – “what can you DO” – not what attributes are saved

    Entities

    • An object that’s not just a bundle of values – must live on – has an identity and are mutable
    • Associating entities – if you can get by with single direction associations, you will GREATLY simplify your life
      • Start with single way associations
    • Shouldn’t have an equals operator?

    Value Objects

    • Measure, quantify or describe a thing in the domain
    • It’s identity is the composition of it’s values – does not carry an identity field
    • Immutable
    • Compared using a combination of all its values
    • Can’t have side effects
    • Money is a great value object. 100,000 means nothing without a unit – prime candidate for a value object
    • You should strive to use value objects wherever possible rather than entities
    • A time range, as described in the Pluralsight course is a great example as well – a start and an end date – and those may have additional methods

    Domain Services

    • Important operations that don’t belong to a particular Entity or Value Object
    • Have interfaces defined in terms of other domain model elements
    • Stateless (but may have side effects)
    • Exist in the core of the app
    • A domain service would be responsible for things like processing a payment

    Resources We Like

    Tip of the Week

    • Want help on your side project? Make it easy for others to help:
      • Put your code on GitHub.
      • Create a README with instructions on how to build and run the project.
        • If it’s trivial, then it will be trivial to document.
      • Create an issue describing the issue as “help wanted”
        • Assign the issue to Joe. /8)
    • Think you know PowerShell? Check out how Mike F Robbins gets our feed.
    • Remarkable – Markdown parser, done right (available on GitHub).
    • Format your JSON with ease:

    Spread the Word

    Do you know how you can help us? Tell someone about the show. That’s it. It’s that easy. And, we’d appreciate it. Super appreciate it.

    And if you haven’t already, head to http://www.codingblocks.net/review to leave us a review. The world needs to hear your opinion.

    Byadministrator

    5 Twitch Plugins for WordPress

    Twitch shouldn’t need any introduction to gamers, video producers, and livestreamers. Many YouTubers are also active on the site. If you have a growing presence on the site, you may want to use these Twitch plugins to display your videos or status in WordPress: Team Broadcast Status List: displays the current status of a group […]

    The post 5 Twitch Plugins for WordPress appeared first on WP Solver.

    Byadministrator

    Top Free Cloud-Powered Tools to Help Startups Get Going

    Starting up is tough. Everything you do has to be done after a careful cost benefit analysis. Can you afford not to use advanced productivity, storage, security, email marketing, sales automation, and even ERP tools, when your competitors are using them? Of course, you need them, and you need them without paying anything substantial. This […]

    The post Top Free Cloud-Powered Tools to Help Startups Get Going appeared first on Just Web World.

    Byadministrator

    Warning! Are Small Business Failure Stories Getting You Down?

    Here’s another from my series to help entrepreneurs.  The original post is on my BobWarfield.com site.
    Serendipity, Venture Capital, and Do Only the Paranoid Survive?
    Sometimes my blog posts are motivated entirely by serendipity, and this morning that’s exactly what happened with this post.  I read a couple of small business failure stories, and they…
    Byadministrator

    CNC Software Sale Extended To This Friday!

    I decided there were just too many folks who needed to get a little further in their free trial or get some questions answered to know if G-Wizard was right for them, so I extended the sale.
    As a reminder–all CNC Software has been marked down 15%.
    The sale prices don’t show up until you…
    Byadministrator

    Are You Still Ignoring Tool Deflection? [We Can Help!]

    Are you still ignoring Tool Deflection?  You’re not alone–many CNC’ers do.  But it hurts their tool life and surface finish something fierce.
    I just did a video for Cutting Tool Engineering magazine that was totally focused on Tool Deflection.  In it, you’ll learn:

    What tool deflection is
    How it hurts tool life
    How much you…

    Byadministrator

    Episode 59 – How to Jumpstart Your Next App

    We’re back with another exciting episode as Michael questions Hollywood, Allen dreams of his Hackintosh, and Joe is surrounded by Star Wars as we talk about how to jumpstart your next app with Michael Crump (@mbcrump) and Clint Rutkas (@clintrutkas).

    If you’re reading these show notes via your podcast player, you can find this episode’s full show notes at http://www.codingblocks.net/episode59.

    Join us on Slack

    Like to talk to like-minded developers? You should join our Slack community. Head to http://www.codingblocks.net/slack to become a part of the conversation today.

    Survey

    In this episode, we ask: How cool is your company?

    How cool is your company?

       

      Go sign up for the contest/trialSign up for a free 30-day trial for a chance to win a $500 Amazon gift card at GetAirbrake.com/cb.

       

      News

      Want a Coding Blocks Shirt?

      Be the first on your block to have the coolest Coding Blocks gear available. Go to http://www.codingblocks.net/swag to get yourself some t-shirts and stickers!

      Jumpstart Your Next App with UWP and WTS

      • What is UWP? UWP, or more specifically, the Universal Windows Platform, allows you to develop your app using one API, submit that app package to the Windows store, and reach all Windows 10 devices. PCs, tablets/phones, Xbox, etc.
      • Using UWP, your app will get some freebies like a clean install/uninstall, a responsive design, and the AppX packaging format.
      • Microsoft announced the WTS, Windows Template Studio, at Build 2017.
      • So what is WTS? WTS provides a new File -> New UWP app experience.
        • Go from File -> New to F5 running a working application in minutes.
      • WTS scaffolds common features (assuming you select the appropriate options) like:
        • Navigation structure:
          • Navigation Pane
          • Pivot and Tabs
        • Framework:
          • Code Behind
          • MVVM Light
          • MVVM Basic
        • Pages and App Lifecycle Features:
          • Map
          • Master/Detail
          • Settings
            • Theming
          • Tabbed
          • Web View
          • Background Tasks
          • Settings Storage
          • Suspend and Resume

      • Generated code adheres to best practices for the given option/framework.
      • Localization ready.
      • WTS is open source (GitHub).
        • Create your own custom templates.
      • Getting started by following the instructions on GitHub.
        • Download Visual Studio 2017
        • Install the WTS extension
        • Select File -> New Project -> C# -> Windows Universal – Windows Template Studio.

      Go from …

      to …

      in minutes.

      Watch Joe create a UWP app with Windows Template Studio and iPodcastSearch:

      Resources We Like

      Tip of the Week

      Tell Your Friends

      How would you like to do us a favor? A simple, easy favor. Tell a friend about the show. We’ll be forever grateful if you do, as will your friend.

      And while you’re in the giving mood, if you haven’t already left us a review, we’d really appreciate it. Go to http://www.codingblocks.net/review to let everyone hear your voice.

      Byadministrator

      What’s your favorite programming book?

      As programmers, we’ve collected our fair share of best practices and programming references.  We want to share some of our favorites and let you share any gems you’ve found along the way!

      * Different books for different things
      * What are your favorites?

      Ok, I’ll start

      Pragmatic Programmer

      Pragmatic Programmer

      Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process–taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.
      http://amzn.to/2q9HYAD

      Clean Code

      Clean Code

      Clean Code

      Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
      http://amzn.to/2pjYWJt

      Code Complete

      Code Complete

      Code Complete

      Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction.
      http://amzn.to/2q9Y2lI

      Domain Driven Design

      Ralph Johnson, author of Design Patterns

      Domain Driven Design

      Domain Driven Design

      “If you don’t think you are getting value from your investment in object-oriented programming, this book will tell you what you’ve forgotten to do.
      http://amzn.to/2pk1Gqo

      Runner-Ups

      * CLR via CSharp?

      CLR via C#

      CLR via C#

      Dig deep and master the intricacies of the common language runtime, C#, and .NET development. Led by programming expert Jeffrey Richter, a longtime consultant to the Microsoft .NET team – you’ll gain pragmatic insights for building robust, reliable, and responsive apps and components.
      http://amzn.to/2q8hOeA

      Art of Unit Testing

      Art of Unit Testing

      Art of Unit Testing

      The Art of Unit Testing, Second Edition guides you step by step from writing your first simple unit tests to building complete test sets that are maintainable, readable, and trustworthy. You’ll move quickly to more complicated subjects like mocks and stubs, while learning to use isolation (mocking) frameworks like Moq, FakeItEasy, and Typemock Isolator. You’ll explore test patterns and organization, refactor code applications, and learn how to test “untestable” code. Along the way, you’ll learn about integration testing and techniques for testing with databases.
      http://amzn.to/2q9SgQY

      Let’s Hear Your Pick

      Now it’s your turn!  What’s your favorite programming book?  Don’t worry if it’s already been listed, that might just mean additional votes of confidence!  Share your favorites in the comments below.

      Byadministrator

      Episode 58 – Why Domain Driven Design

      This week, Michael asks his customers about their anemic domain model, Allen talks in front of people, and Joe plays Rocket League as we begin our dive into understanding domain driven design.

      Are you reading this episode’s show notes via your podcast player? You can find this episode’s full show notes at http://www.codingblocks.net/episode58.

      Become a Part of the Community

      Care to join in on the conversation? Join the conversation in the Slack community by heading over to http://www.codingblocks.net/slack to join today.

      Survey

      This week, we ask: Which (programming) language are you most envious of?

      Which (programming) language are you most envious of?

         

        Go sign up for the contest/trialSign up for a free 30-day trial for a chance to win a $500 Amazon gift card at GetAirbrake.com/cb.

         

        News

        • Thank you to everyone that left us a review! It really means a lot to us.
          • iTunes reviews: tumoxe, drkaj, rumberger_, robbydiesal, heberej, Caffeine Slayer, ArgggGamer, gbmillard, Bob Minteer, wpdevguy, SanJustoEs, Tokachu, Mordef, DK4501, RCF9, ABSquaredX, Shenril, D***qAllTehNICKNAMEZtaken, ze durham, LucasandRico
          • Stitcher reviews: JoeZacksBeard, MrE DBA, MoJoRisin, topswagcode, Joshua Kaluba, tackaman, Cruz, ssfcultra
        • Top 10 things which make programmers unhappy at MyBroadband. A brief summary of this academic paper.
        • nate_the_dba points out: Don’t use Allen’s SQL debugging Tip-of-the-Week in production as it can lock tables. (Or use it carefully.) And Michael asks, why are you debugging in production?
        • Allen gives a presentation on Serverless Architecture (YouTubeMeetup). Unfortunately, he felt a bit uneasy following an extremely well polished presentation on JavaScript Everywhere (YouTube).
        • Facebook announces React Fiber (TechCrunch)
        • OMG, we’re already at Angular 4.0 (Blogspot)
        • Joe moved to Orlando!
          • So many more Meetups to attend.
        • Joe attended the Orlando Code Camp.

        Swag

        I know, I know, your swagger game is tight. But, and hear me out, it could be better. Check out http://www.codingblocks.net/swag for more information on how to get some of your favorite Coding Blocks stickers and t-shirts.

        Domain Driven Design (DDD)

        Why Domain Driven Design

        • What is the “domain”?
        • Set of principles and patterns to solve difficult problems
        • Clear and testable code that represents the domain
        • Interact with domain experts
        • In contrast to some approaches, you focus on a single domain at a time
        • Business logic is in one area

        Drawbacks?

        • Need access to the domain experts
        • Time and effort, initially, much higher
        • Have to really think about how to isolate domain logic from other portions of your application
        • Learning curve – as with any new framework / pattern
        • No reason to do it in place of a simple crud app – if there’s not complex business domains to manage, this is overkill
        • Gotta get buy in from upper management
        • Is DDD anti-agile? http://stackoverflow.com/questions/39245741/what-makes-domain-driven-design-worthwhile

        Ubiquitous Language

        • One of the most important aspects of DDD
        • “Client” means something totally different to a UI developer vs a domain expert working with customers
        • Common vocabulary MUST be established – and all communications should be carried out with that vocabulary
        • Need to focus on how the domain works – nothing regarding implementation details

        Getting into the details…a bit

        • Bounded context – specific responsibility with explicit boundaries that separate it from other parts of a system
          • “Explicitly define the context within which a model applies…Keep the model strictly consistent within these bounds, but don’t be distracted or confused by issues outside” – Eric Evans
        • Terms:
          • Problem domain – the specific problem you’re working on solving
          • Core domain – key to the customer’s business – cannot be outsourced
          • Sub domain – separate pieces your software must interact with
          • Context mapping – identifying bounded contexts and their relationships to one another
          • Shared kernel – part of the model that is shared by more than one team – will not change without collaboration between teams

        Resources We Like

        Tip of the Week

        Share With a Friend

        Would you like to help us? You can. And it’s easy. Share Coding Blocks with a friend. See. Now wasn’t that easy? And what’s even better, now your friend knows that you’re a genius. So, win-win right?

        And hey, there’s one last way you can help us. How’s that you ask? Simply leave us a review. Head to http://www.codingblocks.net/review to tell the world about us.